VesselWheel

Class 와 사칙연산을 활용한 계산기 만들기 본문

Coding Test Practice in Swift

Class 와 사칙연산을 활용한 계산기 만들기

JasonYang 2023. 11. 28. 13:33

1. class 구조화 

import Foundation

class Calculator {
    var a : Double?
    var b : Double?
    
    //덧셈
    func plus(_ a: Double, _ b: Double) -> Double {
        return a + b
    }
    
    //뺄샘
    func minus(_ a: Double, _ b: Double) -> Double {
        return a - b
    }
    
    //곱셉
    func multi(_ a: Double, _ b: Double) -> Double {
        return a * b
    }
    
    //나눗셈
    func divide(_ a: Double, _ b: Double) -> Double? {
        guard b != 0 else {
            print("0으로 나눌 수 없어요.")
            return nil
        }
        return a / b
    }
    
    //나머지
    func remain(_ a: Int, _ b: Int) -> Int {
        return a % b
    }
}
//class 인스턴스 생성, 실질적인 값을 저장하고 사용하려면 메모리 공간을 할당받은 객체
let cal = Calculator()


//<인스턴스 이름>.<프로퍼티 이름>
cal.divide(4, 2)
cal.minus(7, 2)
cal.remain(12, 5)
cal.divide(4, 0)

 

2. 객체지향 class

import Foundation

class Calculator {
    var firstNumber : Double?
    var secondNumber : Double?
    
    //덧셈
    func plus(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber + secondNumber
    }
    
    //뺄샘
    func minus(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber - secondNumber
    }
    
    //곱셉
    func multi(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber * secondNumber
    }
    
    //나눗셈
    func divide(_ firstNumber: Double, _ secondNumber: Double) -> Double? {
        guard secondNumber != 0 else {
            print("0으로 나눌 수 없어요.")
            return nil
        }
        return firstNumber / secondNumber
    }
    
    //나머지
    func remain(_ firstNumber: Int, _ secondNumber: Int) -> Int {
        return firstNumber % secondNumber
    }
    
}


//<인스턴스 이름>.<프로퍼티 이름>
let calculator = Calculator()

let addResult = calculator.plus(2, 2)
let subtractResult = calculator.minus(2, 2)
let multiplyResult = calculator.multi(2, 2)
let divideResult = calculator.divide(4, 2)
let remainderResult = calculator.remain(4, 2)


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

 

3. Calculator() 부모 class를 자녀 class에 상속 : 의미는 이해가 안되지만 구현해보았다. 

import Foundation

class Calculator {
    var firtNumber : Double?
    var secondNumber : Double?
        //덧셈
        func AddOperation(_ firstNumber: Double, _ secondNumber: Double) -> Double {
            return firstNumber + secondNumber
        }
        
        //뺄샘
        func SubtractOperation(_ firstNumber: Double, _ secondNumber: Double) -> Double {
            return firstNumber - secondNumber
        }
        
        //곱셉
        func MultiplyOperation(_ firstNumber: Double, _ secondNumber: Double) -> Double {
            return firstNumber * secondNumber
        }
        
        //나눗셈
        func DivideOperation(_ firstNumber: Double, _ secondNumber: Double) -> Double? {
            guard secondNumber != 0 else {
                print("0으로 나눌 수 없어요.")
                return nil
            }
            return firstNumber / secondNumber
        }
        /*
        //나머지
        func remain(_ firstNumber: Int, _ secondNumber: Int) -> Int {
            return firstNumber % secondNumber
        } */
}

// 덧셈 연산 클래스
class AddOperation : Calculator {
    func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber + secondNumber
    }
}

// 뺄셈 연산 클래스
class SubtractOperation : Calculator {
    func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber - secondNumber
    }
}

// 곱셈 연산 클래스
class MultiplyOperation : Calculator {
    func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber * secondNumber
    }
}

// 나눗셈 연산 클래스
class DivideOperation : Calculator {
    func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double? {
        guard secondNumber != 0 else {
            print("Error: 0으로 나눌 수 없음")
            return nil
        }
        return firstNumber / secondNumber
    }
}

let calculator = Calculator()

let addResult = calculator.AddOperation(45, 23)// 덧셈 연산
let subtractResult = calculator.SubtractOperation(523, 323)// 뺄셈 연산
let multiplyResult = calculator.MultiplyOperation(532, 2)// 곱셈 연산
let divideResult = calculator.DivideOperation(100, 2)// 나눗셈 연산

print("addResult : \(addResult)")
print("subtractResult : \(subtractResult)")
print("multiplyResult : \(multiplyResult)")
print("divideResult : \(divideResult)")

- 빌드 실패... 방법을 찾아보자~!

'Coding Test Practice in Swift' 카테고리의 다른 글

부족한 금액 계산하기  (1) 2023.12.05
약수의 개수와 덧셈  (1) 2023.11.29
내적 구하기 ft. 스칼라  (0) 2023.11.28
제곱근 구하기  (0) 2023.11.27
수박수? 반복패턴 만들기  (2) 2023.11.27