개발...................../TIL

20240605_계산기 만들기 (Lv.1)

bluewiper 2024. 6. 6. 10:07

 

오늘은 계산기를 만들어보겠습니다~

 

 

 

Lv.1 과제의 필수 구현 기능부터 살펴볼까요?

 

 

 

더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들기
생성한 클래스를 이용하여 연산을 진행하고 출력

 

 

 

 

Thought process

//calculator class 생성 *
//첫번째 들어갈 값 선언, 두자릿수 이상 입력하기 위해 string 값으로 받기
//두번째 들어갈 값 선언, 두자릿수 이상 입력하기 위해 string 값으로 받기
//string 값으로 받은 데이터를 Double로 형변환하여 연산 출력값을 Double형태로 받을 수 있도록 하기
//값을 저장하기 위한 초기화
//연산 기능 추가(덧셈) : 함수 정의
//연산 기능 추가(뺄셈) : 함수 정의
//연산 기능 추가(곱셈) : 함수 정의
//연산 기능 추가(나눗셈) : 함수 정의
//숫자 입력
//연산 함수 호출
//작동 확인 단계 : 값 출력

 

 

바로 코딩을 시작하는 것보다는 필수 구현 기능을 우선으로 넣었는지,

해당 기능이 작동하기 위해서 어떤 전후과정이 있는지에 대해

생각해보는 습관을 들이는중입니다.

 

로직을 미리 짜놓고도 로직대로 코딩하지 않는 경우도 발생하고,

이 때는 오류가 발생해도 원인을 찾기 어려우니

유의해주시면 좋겠습니다~

 

 

My code

class Calculator {
    var firstNumber : String
    //첫번째 들어갈 값 선언, 두자릿수 이상 입력하기 위해 string 값으로 받기
    var secondNumber : String
    //두번째 들어갈 값 선언, 두자릿수 이상 입력하기 위해 string 값으로 받기
    init(firstNumber: String, secondNumber: String) {
        self.firstNumber = firstNumber
        self.secondNumber = secondNumber //새롭게 입력된 값을 저장하기 위한 초기화
    }
    
    // 연산 기능 추가(덧셈, 뺄셈, 곱셈, 나눗셈)
    // 덧셈 메서드
    func add() -> Double {
        let firstNum = Double(firstNumber) ?? 0.0
        let secondNum = Double(secondNumber) ?? 0.0
        // ?? 연산자는 "nil-coalescing operator" 의미. 옵셔널 값이 nil인 경우 대체 값을 제공하는 데 사용
        return firstNum + secondNum
    }
    // 뺄셈 메서드
    func sub() -> Double {
        let firstNum = Double(firstNumber) ?? 0.0
        let secondNum = Double(secondNumber) ?? 0.0
        // ?? 연산자는 "nil-coalescing operator" 의미. 옵셔널 값이 nil인 경우 대체 값을 제공하는 데 사용
        return firstNum - secondNum
    }
    // 곱셈 메서드
    func mul() -> Double {
        let firstNum = Double(firstNumber) ?? 0.0
        let secondNum = Double(secondNumber) ?? 0.0
        // ?? 연산자는 "nil-coalescing operator" 의미. 옵셔널 값이 nil인 경우 대체 값을 제공하는 데 사용
        return firstNum * secondNum
    }
    // 나눗셈 메서드
    func div() -> Double {
        let firstNum = Double(firstNumber) ?? 0.0
        let secondNum = Double(secondNumber) ?? 0.0
        // ?? 연산자는 "nil-coalescing operator" 의미. 옵셔널 값이 nil인 경우 대체 값을 제공하는 데 사용
        return firstNum / secondNum
    }
}
let calculator = Calculator(firstNumber: "20", secondNumber: "20")
// Calculator 클래스 초기화 후 빈공간을 채우기 위해 인스턴스를 생성
// 계산기 작동 확인을 위해 숫자 입력, firstNumber와 secondNumber 값을 연산하고 싶은 값으로 초기화
calculator.add()
//함수 호출해서 작동 확인

//목표 Lv.2
//목표 마지막 출력값에 새로운 숫자를 입력(append) 후 연산자를 넣었을 때 결과값이 나오게 하기

 

Notice 형변환, 옵셔널, 클래스 초기화 후 인스턴스 생성

 

 

화이팅~