Android App Track⛺-009

MunkiJeon·2024년 6월 9일

TIL

목록 보기
26/59
post-thumbnail

TIL (Today I Learned)

오늘 공부한거!

  • Kotlin 문법 개발 과제 - 🧮계산기🛠️맹글기

    Lv3

    • AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를을 만든 후 클래스간의 관계를 고려하여
      Calculator 클래스와 관계를 맺기
      - 관계를 맺은 후 필요하다면 Calculator 클래스의 내부 코드를 변경하기
      - 나머지 연산자(%) 기능은 제외합니다.
      - Lv2 와 비교하여 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
      - hint. 클래스의 책임(단일책임원칙)
    • Calculator.kt
      fun main() {
         var run = true
         var numB = 0
         print("계산할 숫자 :")
         var numA = readLine()!!.toInt()
         while (run){
             println("\n$numA 에 어떤 연산 하시겠습니까? \n >> 1. + | 2. - | 3. * | 4. / | 5. % |  -1. 종료 <<")
             var operator = readLine()
             if (operator == "-1" || operator == "종료"){ run = false;}
             else{
                 print("계산할 숫자 :")
                 numB = readLine()!!.toInt()
             }
             when(operator){
                 "1","+" ->{
      //                println("= ${Operator().plus(numA,numB)}")
      //                numA = Operator().plus(numA,numB)
                     numA = AddOperation(numA,numB).plus()
                     println("= ${numA}")
                 }
                 "2","-" ->{
      //                println("= ${Operator().subtract(numA,numB)}")
      //                numA = Operator().subtract(numA,numB)
                     numA = SubstractOperation(numA,numB).subtract()
                     println("= ${numA}")
                 }
                 "3","*" ->{
      //                println("= ${Operator().multiply(numA,numB)}")
      //                numA = Operator().multiply(numA,numB)
                     numA = MultiplyOperation(numA,numB).multiply()
                     println("= ${numA}")
                 }
                 "4","/" ->{
      //                println("= ${Operator().divide(numA,numB)}")
      //                numA = Operator().divide(numA,numB)
                     numA = DivideOperation(numA,numB).divide().roundToInt()
                     println("= ${numA}")
                 }
                 "5","%" ->{
                     numA = Operator().remain(numA.toDouble(),numB.toDouble()).roundToInt()
                     println("= ${numA}")
                 }
                 "-1","종료" ->{
                     println("-------- 계산기를 종료 합니다 --------")
                 }
                 else ->{ println("잘못된 값을 입력 했습니다: ${operator}") }
             }
         }
      }

    • AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기)
       class AddOperation {//더하기
           var A = 0
           var B = 0
           constructor(numA: Number,numB: Number) {
               A = numA.toInt()
               B = numB.toInt()
           }
           fun plus() :Int = A + B
       }
       class SubstractOperation {//빼기
           var A = 0
           var B = 0
           constructor(numA: Number,numB: Number) {
               A = numA.toInt()
               B = numB.toInt()
           }
           fun subtract() :Int = A - B
       }
       class MultiplyOperation {//곱하기
           var A = 0
           var B = 0
           constructor(numA: Number,numB: Number) {
               A = numA.toInt()
               B = numB.toInt()
           }
           fun multiply() :Int = A * B
       }
       class DivideOperation {//나누기
           var A = 0.0
           var B = 0.0
           constructor(numA: Number,numB: Number) {
               A = numA.toDouble()
               B = numB.toDouble()
           }
           fun divide() :Double = A / B
       }

Today Review

  • 개인사정으로 lv4 생략
profile
공장자동화와 웹 개발을 핥아 먹다 앱 개발로 전향한 개발자의 키보드의 낡은 키캡⛑️

0개의 댓글