ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20240605_계산기 만들기 (Lv.1)
    개발...................../TIL 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 형변환, 옵셔널, 클래스 초기화 후 인스턴스 생성

     

     

    화이팅~