하루 종일 열심히 만들어 보긴 했는데. 잘 한건지 모르겠다.
class Calculator {
val addOperation = AddOperation()
val subtractOperation = SubtractOperation()
val multiplyOperation = MultiplyOperation()
val divideOperation = DivideOperation()
fun calculate(num1: Int, num2: Int, operation: Int) {
when (operation) {
1 -> {
val result = addOperation.operate(num1, num2)
println("더하기를 선택하셨습니다.")
println("결과: $result")
}
2 -> {
val result = subtractOperation.operate(num1, num2)
println("빼기를 선택하셨습니다.")
println("결과: $result")
}
3 -> {
val result = multiplyOperation.operate(num1, num2)
println("곱하기를 선택하셨습니다.")
println("결과: $result")
}
4 -> {
val result = divideOperation.operate(num1, num2)
println("나누기를 선택하셨습니다.")
println("결과: $result")
}
else -> println("올바른 연산자를 선택해 주세요.")
}
}
fun main() {
println("숫자 1을 입력해 주세요.")
val num1 = readLine()!!.toInt()
println("숫자 2를 입력해 주세요.")
val num2 = readLine()!!.toInt()
println("$num1, $num2 를 입력하셨습니다. 맞습니까?")
println("맞으면 1, 틀리면 2를 입력해 주세요.")
val continueCheck = readLine()!!.toInt()
while (continueCheck == 1) {
println("연산자를 선택하세요.")
println("1. 더하기")
println("2. 빼기")
println("3. 곱하기")
println("4. 나누기")
println("0. 나가기")
val calcnum = readLine()!!.toInt()
if (calcnum == 0) {
println("계산을 종료합니다.")
break
}
val calculator = Calculator()
calculator.calculate(num1, num2, calcnum)
}
println("숫자를 다시 입력하시려면 1을 입력해 주세요.")
println("계산기 종료를 원하실 경우 0을 입력해 주세요.")
val wantExit = readLine()!!.toInt()
when (wantExit) {
1 -> main()
0 -> {
println("계산기를 종료합니다.")
exitProcess(0)
}
else -> {
println("잘못 입력하셨습니다.")
println("처음으로 돌아갑니다.")
main()
}
}
계산기 프로그램인 만큼 숫자만 딸랑 내주는게 아니라,
내가 원하는 연산자를 선택하고 숫자를 잘못 입력했을 때에는 다시 돌아가거나
프로그램을 처음부터 시작하는 기능까지 있었으면 좋겠다 싶었다.
어찌저찌 되긴 하는데 사실 왜 됐는지도 잘 모르겠다.
박치기 하다보면 좀 잘 할 수 있을 줄 알았는데 ㅠ.ㅠ
더 해봐야지