Kotlin TIL(3) [Lv.1, 2 계산기]

jxxn_a·2023년 7월 19일
0

TIL

목록 보기
3/28

Kotlin으로 계산기를 만들어보자!

Kotlin 강의를 듣고 개인과제를 받았는데 Level이 1단계 ~ 4단계까지 있었다!

우선 오늘은 1단계와 2단계를 작성해보고자한다.

◼ 1단계

1단계는 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들고, 클래스를 이용하여 연산을 진행하고 출력하기이다.

처음에 어떻게 할까 고민하면서 여러 번 시도를 해봤는데 생각보다 잘 풀리지 않아서 Hint를 보고 완성했다.

fun main() {
    Calculator().Operation()
}

class Calculator() {
    val print = "숫자와 연산기호를 작성해주세요."
    var num1 = readLine()!!.toInt()
    var operator = readLine()!!.toString()
    var num2 = readLine()!!.toInt()
    
    fun Operation() {
        if(operator == "+") {
            println(num1 + num2)
        } else if(operator == "-") {
            println(num1 - num2)
        } else if(operator == "*") {
            println(num1 * num2)
        } else if(operator == "/") {
            println(num1 / num2)
        } 
    }

}

이 정도를 작성해준 뒤 정상적으로 작동하는 것을 확인했다.

◼ 2단계

2단계는 Lv1에서 만든 Calculator 클래스에 나머지 연산을 가능하도록 코드를 추가하고, 연산 진행 후 출력하기였다.

2단계도 어려운 것 없이 잘 마무리 지었는데 계산기가 시작 한 것은 알렸지만 중간 중간 안내를 해주는 것도 좋을 것 같아서 중간에 글을 작성해서 넣어주고 조금 다듬어준 뒤 마무리지었다.

class Calculator() {
    val welcome = println("계산기를 실행했습니다.")
    val gate = println("==============================")

    val first = println("첫 번째 숫자를 작성해주세요.")
    var num1 = readLine()!!.toInt()

    val second = println("연산 기호를 작성해주세요.")
    var operator = readLine()!!.toString()

    val last = println("두 번째 숫자를 작성해주세요.")
    var num2 = readLine()!!.toInt()

    fun Operation() {
        if(operator == "+") {
            println("결과는 ${num1 + num2} 입니다.")
        } else if(operator == "-") {
            println("결과는 ${num1 - num2} 입니다.")
        } else if(operator == "*") {
            println("결과는 ${num1 * num2} 입니다.")
        } else if(operator == "/") {
            println("결과는 ${num1 / num2} 입니다.")
        } else if(operator == "%") {
            println("결과는 ${num1 % num2} 입니다.")
        } else {
            println("잘못된 부분이 있습니다. 다시 입력해주세요.")
        }    
    }

문제는 3단계인데...
3단계는 AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를을 만든 후 클래스간의 관계를 고려하여 Calculator 클래스와 관계를 맺기

  • 관계를 맺은 후 필요하다면 Calculator 클래스의 내부코드를 변경하기
  • 나머지 연산자(%) 기능은 제외합니다.
  • Lv2 와 비교하여 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
  • hint. 클래스의 책임(단일책임원칙)

글만 읽어봐도 전체적으로 다 손을 봐야 하는 것 같다!
금요일까지 제출해야하는데 벌써부터 눈물만 난다...
너무 어렵지만 시도는 해보자구...!!

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

많은 도움이 되었습니다, 감사합니다.

답글 달기