본문 바로가기

iOS 앱 개발자 프로젝트/개인 프로젝트

[Project] #3 나만의 계산기 만들기(Lv2)

나만의 계산기 만들기 Level 2!

 

→ 나는 swich문과 %를 연산자를 사용하며 어렵게 생각했던 문제였는데 튜터님의 설명을 보니 mod라는 변수를 Int 타입으로 선언하시고 아주 단순하게 %로 나머지 연산을 하셔서 조금은 허탈했다. 이 경우 타입을 Double로 설정해보니 에러가 났다. 숫자 연산은 Double로 사용해버리자! 라고 생각했던 나의 단순한 사고방식은 고쳐야겠다.

 

( 앞서 진행한 Lv 1 내용보기 >> Lv1 에서 만든 Calculator )


 

Level 2 : Lv1에서 만든 Calculator 클래스에 나머지 연산이 가능하도록 코드를 추가

 

 

↓  아래는 덧셈 뺄셈은 Double 타입으로 풀었던 나의 사칙연산 클래스에 mod 변수와 예시를 추가한 최종 코드이다.

    튜터님은 나눗셈을 제외한 모든 연산을 Int 타입으로 풀어주셨다. 

class Calculator {
    
    func add(_ a: Double, _ b: Double) -> Double {
        return a + b
    }
    
    func subtract(_ a: Double, _ b: Double) -> Double {
        return a - b
    }
    
    func multiply(_ a: Double, _ b: Double) -> Double {
        return a * b
    }
    
    func divide(_ a: Double, _ b: Double) -> Double {
        guard b != 0 else {
            print("0으로 나눌 수 없습니다.")
            return 0.0
        }
        return a / b
    }
    
    func mod(_ a: Int, _ b: Int) -> Int {
        return a % b
        }
    }


let calculator = Calculator()
print(calculator.add(1, 2))
print(calculator.subtract(3, 1))
print(calculator.multiply(3,5))
print(calculator.divide(1,0))
print(calculator.mod(6, 3))

 

 

 

 ↓  아래는 튜터님이 공유해 주신 풀이 예시 (주석을 넣는 스타일을 잘 기억해 두어야겠다.)

class Calculator {
  
  func add(_ number1: Int, _ number2: Int) -> Int {
    number1 + number2
  }
  
  /// https://developer.apple.com/library/archive/documentation/Xcode/Reference/xcode_markup_formatting_ref/
  /**
    - parameters:
    - number1: 빼기 연산자의 왼쪽에 오는 수
    - number2: 빼기 연산자의 오른쪽에 오는 수
   */
  func minus(_ number1: Int, _ number2: Int) -> Int {
    number1 - number2
  }
  
  func multiply(_ number1: Int, _ number2: Int) -> Int {
    number1 * number2
  }
  
  func divide(_ number1: Int, _ number2: Int) -> Double {
    
    guard number2 != 0 else {
      return 0.0
    }
    
    return Double(number1) / Double(number2)
  }
  
  func mod(_ number1: Int, _ number2: Int) -> Int {
    number1 % number2
  }
}

let calculator = Calculator() // 인스턴스 생성하여 변수에 할당

//print(calculator.add(1, 2))       // 3
//
//print(calculator.minus(3, 1))     // 2
//
//print(calculator.multiply(3, 5))  // 15
//
//print(calculator.divide(1, 0))    // 0.3333..
//
//calculator.mod(3, 5)              // 3
//
//calculator.mod(6, 3)              // 0
//
//calculator.mod(5, 3)              // 2