2가지 사칙연산 함수

박중권·2024년 3월 7일
1

Info.

목록 보기
7/13

부트캠프의 첫 개인과제: 계산기

강의를 다 듣고 또 들어봤지만, 일단 뭔지는 알겠는데... 정확히는 모르겠고...
그래도 제출이 금요일까지라 일단 시도해보기로 했다.

처음 작성한 방식:

class Calculator {
    
    var num1: Double
    var num2: Double
    
    init(num1: Double, num2: Double) {
        self.num1 = num1
        self.num2 = num2
    }
    
    func add() {
        print("Answer is \(num1 + num2)")
        }
        
    func subtract() {
        print("Answer is \(num1 - num2)")
        }
    
    func divide() {
        print("Answer is \(num1 / num2)")
        }
    
    func multiply() {
        print("Answer is \(num1 * num2)")
        }
}

let calculator = Calculator(num1: 10, num2: 3)
calculator.add()
calculator.subtract()

이 방식은 2개의 수만 나온다면 잘 활용될 수 있는 방식이지만,
내가 두 수의 합과 곱하기를 알고 싶다면 다시 calculator를 불러서 구현을 해야한다는 단점이 있었다.

그래서 시도한 방법:

class Calculator {
    
    func add(num1: Double, num2: Double) -> Double {
        return num1 + num2
    }
    func sub(num1: Double, num2: Double) -> Double {
        return num1 - num2
    }
    func multiply(num1: Double, num2: Double) -> Double {
        return num1 * num2
    }
    func divide(num1: Double, num2: Double) -> Double {
        return num1 / num2
    }
}

let calcu = Calculator()
calcu.add(num1: 2, num2: 4)
calcu.sub(num1: 2, num2: 5)
calcu.multiply(num1: 2, num2: 5)
calcu.divide(num1: 4, num2: 3)

이 방식은 위에와 반대로, 2개의 수만 다룬다면, 비효율적이다.
하지만, 왠지 다른 수를 자유롭게 원하는 사칙연산에 넣을 수 있다라는 점이 마음에 들어서 위에 방법으로 결정했다.

오늘의 일등공신 chatGPT.

profile
Hello World!

3개의 댓글

comment-user-thumbnail
2024년 3월 7일

아까 튜터님께 질문하시던데 저도 튜터님께 도움받았습니다. ㅎㅎ 4레벨까지 하셨나요? 오늘도 수고하셨습니다.

답글 달기
comment-user-thumbnail
2024년 3월 7일

계산기! 열심히 만들고 계시네요ㅎㅎ 연산마다 func 나눠서 사용하신 방법 잘 봤습니다!!
저는 switch 사용해서 만들어 보고 있는데, 길을 잃으면 저 방법도 한 번 시도해봐야겠어요.
오늘도 고생 많으셨습니다~ :>

답글 달기
comment-user-thumbnail
2024년 3월 7일

저도 말씀해주신 거 듣고 채찍피티 활용해봤어요.. 최고!!! 계산기 과제 저한테는 너무 벅차네요. 장단점 고려해서 여러 방법으로 시도해보신 거 멋져요! 참고할게요~

답글 달기