[Spring 4기] Ch2 계산기 과제 트러블슈팅

728x90
public double calculate() {
    switch (operation) {
        case "+":
            return num1 + num2;
        case "-":
            return num1 - num2;
        case "*":
            return num1 * num2;
        case "/":
            if (num2 == 0) {
                System.out.println("분모는 0으로 나눌 수 없습니다.");
                return result;
            }
            return (double) num1 / num2;
        default:
            System.out.println("잘못된 사칙연산 기호입니다.");
            break;
    }
    return result;
    queue.add(result); //오류 발생
}

제가 오늘 Lv.2 과제를 하다가 오류가 발생했습니다. 코드부터 설명해드리자면

calculate 메서드를 실행하면, 해당 클래스 내에 저장해놓은 operation, num1, num2를 이용하여 계산을 하고, 이 결과를 queue 컬렉션에 저장하는 코드입니다.

근데 분명 문제가 없어보이는데 마지막 부분에 오류가 발생합니다. 처음에는 정말 뭐가 문제인가 싶었는데 보다보니 누구나 할 수 있지만 정말 바보같은 실수를 해버렸습니다..

queue 값을 저장하지 않고 return 해버린다는 것입니다.. add보다 return을 먼저 할 경우 사실상 저장도 못하고 그냥 버려지는 코드 한줄이 되게 됩니다.

public double calculate() {
    switch (operation) {
        case "+":
            return num1 + num2;
        case "-":
            return num1 - num2;
        case "*":
            return num1 * num2;
        case "/":
            if (num2 == 0) {
                System.out.println("분모는 0으로 나눌 수 없습니다.");
                return result;
            }
            return (double) num1 / num2;
        default:
            System.out.println("잘못된 사칙연산 기호입니다.");
            break;
    }
    queue.add(result); //해결 완료 ^_^
    return result;
}

별거 아닌 실수지만 주의해야겠습니다...


 

728x90
반응형
LIST

'Sparta > java' 카테고리의 다른 글

unclosed character literal 오류해결  (0) 2024.11.27
IntelliJ 단축키 모음  (0) 2024.11.12
java static 좀 더 깊게 알아보기  (0) 2024.11.12
java 코드 리팩토링  (0) 2024.11.10
인수(Argument)와 매개변수(Parameter)  (0) 2024.11.07