🍥구현 기능
- Lv1에서 만든 Calculator 클래스에 출력 이후 추가 연산을 가능하도록 코드를 추가하기
- 클래스를 이용하여 연산 진행 후 출력하기
🍥구현하기
Calculator 클래스
class Calculator {
var a:Double = 0.0
var op:Char = ' '
var b:Double = 0.0
init{
println("계산기가 생성되었습니다.")
}
fun add():Double{
val output = a + b
println("= ${output}")
return output
}
fun sub():Double{
val output = a - b
println("= ${output}")
return output
}
fun div():Double{
val output = a / b
println("= ${output}")
return output
}
fun mul():Double{
val output = a * b
println("= ${output}")
return output
}
fun calculate(){
when(op){
' ' -> println("error! 연산자가 입력되지 않았습니다.")
'+' -> a = add()
'-' -> a = sub()
'/' -> if(b == 0.0) println("error! 0으로 나눌 수 없습니다.") else a = div()
'*' -> a = mul()
else -> println("error! 유효한 연산자가 아닙니다.")
}
}
fun calculateNewInput(input:String){
if(input == ""){
println("error! 연산식이 입력되지 않았습니다.")
return
}
for(i in 0 until input.length){
if(input[i] == '+'|| input[i] == '-'|| input[i] == '/'|| input[i] == '*'){
a = input.substring(0, i).toDouble()
op = input[i]
b = input.substring(i+1).toDouble()
break;
}
}
calculate()
}
fun calculateNextInput(input:String){
if(input == ""){
println("error! 연산식이 입력되지 않았습니다.")
return
}
for(i in 0 until input.length){
if(input[i] == '+'|| input[i] == '-'|| input[i] == '/'|| input[i] == '*'){
op = input[i]
b = input.substring(i+1).toDouble()
break;
}
}
calculate()
}
}
My_Calculator.kt
fun main() {
val calculator1 = Calculator()
var input:String = ""
while(input != "q"){
println("계산할 수식을 입력하세요. (계산기 종료: q)")
input = readLine() ?: ""
if(input == ""){
println("error! 연산식이 입력되지 않았습니다.")
continue
}
calculator1.calculateNewInput(input)
while(input != "c" && input != "q"){
println("추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)")
input = readLine() ?: ""
if(input == ""){
println("error! 연산식이 입력되지 않았습니다.")
continue
}
if(input == "c" || input == "q") break
calculator1.calculateNextInput(input)
}
}
println("계산기가 종료되었습니다.")
}
🍥구현 결과
계계산기가 생성되었습니다.
계산할 수식을 입력하세요. (계산기 종료: q)
error! 연산식이 입력되지 않았습니다.
계산할 수식을 입력하세요. (계산기 종료: q)
1 + 2
= 3.0
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
+ 2
= 5.0
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
/ 0
error! 0으로 나눌 수 없습니다.
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
* 6
= 30.0
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
c
계산할 수식을 입력하세요. (계산기 종료: q)
5 / 2
= 2.5
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
- 5
= -2.5
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
error! 연산식이 입력되지 않았습니다.
추가 연산을 입력하세요. (연산 종료: c,계산기 종료: q)
q
계산기가 종료되었습니다.