24.06.04 Today I Learned

2024. 6. 4. 20:31


https://leedoseo.tistory.com/101

 

[내일배움캠프] 문법 기초 Swift 언어의 특징

Swift 언어의 특징안정성Swift는 타입에 엄격한 프로그래밍 언어 (= Type Safe한 언어)문자열 배열에 다른 타입인 숫자 타입의 값을 담을 수 없음타입 안정성을 위해 타입 체크를 해야 함Swift는 nill(빈

leedoseo.tistory.com

https://leedoseo.tistory.com/102

 

[내일배움캠프]문법 기초 프로퍼티와 출력, 메서드

1.  할당 연산자 =A = B이 표현은 "B값을 A에 할당한다"라는 의미우변에 있는 값을 좌변의 변수에 할당한다는 의미let color = "purple"print(color) // 출력값 : purplevar foodName = "사과"var fruitName = "포도"foodNam

leedoseo.tistory.com

 


// import UIKit

//var greeting = "Hello, playground"

class Caluculator {
    // Todo : 내부 구현하기
    
    func calculate(_ operatory: Character, _ firstNumber: Int, _ secondNumber: Int) -> Int {
        // Character를 Int로 변환
        
        switch operatory {
        case "+" : // 덧셈 연산
            return AddOperation.operate(firstNumber, secondNumber)
        case "-": // 뺄셈 연산
            return SubstractOperation.operate(firstNumber, secondNumber)
        case"×": // 곱셈 연산
            return MultiplyOperation.operate(firstNumber, secondNumber)
        case"÷": // 나눗셈 연산
            return DivideOperation.operate(firstNumber, secondNumber)
        case"%": // 나머지 연산
            return RemainderOperation.operate(firstNumber, secondNumber)
        
        default :
            return 0
        }
    }
}
// 위 사칙연산 기호를 입력시 아래위 class를 실행한다?

class AddOperation {
    static func operate(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return (firstNumber + secondNumber)
    } // firstNumber, secondNumber 둘다 Int 정수로 받고 정수로 출력
} // AddOperation은 firstNumber + secondNumber로 덧셈

class SubstractOperation {
    static func operate(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return (firstNumber - secondNumber)
    }
}

class MultiplyOperation {
    static func operate(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return (firstNumber * secondNumber)
    }
}

class DivideOperation {
    static func operate(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return (firstNumber / secondNumber)
    }
}

class RemainderOperation {
    static func operate(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return (firstNumber % secondNumber)
    }
}

let calculator = Caluculator()// calculator 초기화
// Todo : calculator 변수를 활용하여 사칙연산을 진행

let addResult = calculator.calculate("+", 10, 3)// 덧셈 연산
let substractResult = calculator.calculate("-", 10, 3) // 뺄셈 연산
let multiplyResult = calculator.calculate("×", 10, 3)// 곱셈 연산
let divideResult = calculator.calculate("÷", 10, 3)// 나눗셈 연산
let remainderResult = calculator.calculate("%", 10, 3)// 나머지 연산


print("addResult : \(addResult)")
print("substractResult : \(substractResult)")
print("multiplyResult : \(multiplyResult)")
print("divideResult : \(divideResult)")
print("remainderResult : \(divideResult)")

Playground로 계산기 만들기? 를 해봤는데  class에 func 앞에 static이 왜 붙는지랑

예시에서는 아래와 같이 Double로 표현했는데 

func calculate(_ operatory: , firstNumber: , secondNumber: ) -> Double {

 

내 풀이는 아래와 같이 Int로 풀이했다.

나눗셈을 했을 때 소수점이 생기게 되면 문제가 생길 것 같은데 이 부분을 해결할 방법을 생각해봐야겠다.

func calculate(_ operatory: Character, _ firstNumber: Int, _ secondNumber: Int) -> Int {

체크할 점 : static이 사용되는 이유, 나눗셈을 할 때 Double이 필요할 것 같으므로 Double로 변경하고도 오류가 안나도록 코딩

코드의 간소화를 할 수 있는 부분이 있을지, 

'Today I Learned > 2024' 카테고리의 다른 글

24.06.07 Today I Learned  (1) 2024.06.08
24.06.05 Today I Learned  (1) 2024.06.05
24.06.03 Today I Learned  (0) 2024.06.04
24.05.31 Today I Learned  (0) 2024.05.31
24.05.30 Today I Learned  (0) 2024.05.30

BELATED ARTICLES

more