계산기-3

두주·2023년 12월 7일
0

TIL

목록 보기
1/58

또 뜯어고쳤다.

num1과, num2, operator 입력값을 사용자로부터 받아온다.

result라는 상수를 통해 Calculator클래스의 operate함수에 num1, num2, operator를 보내준다.

//calculator.kt

class Calculator {
fun operate(num1: Int, num2: Int, operator: Int): Double {
val operation = when (operator) {
1 -> AddOperation()
2 -> SubstractOperation()
3 -> MultiplyOperation()
4 -> DivideOperation()
else -> println("허용되지 않는 문자입니다.")
}

    return operation.operate(num1, num2)
}

}

이렇게 하면 실행이 안된다.

when을 사용할 때 1~4가 아닌 다른 값을 받았을 때 출력하는 예외 처리가 필요한데
else절이 println을 호출한다.

만약 사용자가 1(더하기)를 입력했다면 실제 처리되는 return 값은 아래와 같다.

return AddOperation().operate(num1, num2)

AddOperation 클래스에 num1과 num2를 보내는 역할을 하고있는데
println(blahblah).operate(num1,num2)가 될 수가 없는 것

어떻게 예외 처리를 할 수 있을까.

else -> throw IllegalArgumentException("예외처리")

아직 뭔 뜻인진 모르겠지만 이렇게 예외처리가 된다고 한다.

되네.

해결했다는 성취감도 있지만

사실 내가 제대로 이해하고 된 건지는 모르겠다.
예제를 보면서 하다보니 된 것 같은 느낌이 너무 크다.

형식 상관없이 계산기를 만들어 봐야지.

profile
야옹.

0개의 댓글