-
계산기 앱iOS/패스트캠퍼스(앱제작) 2022. 4. 3. 13:23
< 주요 기능 >
IBInspecter, IBDesignable
- 계산 기능 구현
// // ViewController.swift // Calculator // // Created by YANG on 2022/04/03. // import UIKit enum Operation { case Add case Subtract case Divide case Multiply case Unknown } class ViewController: UIViewController { @IBOutlet weak var numberOuputLabel: UILabel! var displayNumber = "" // 계산기버튼을 누를때마다 numberOutputLabel에 표시되는 숫자 var firstOperand = "" // 이전 계산값을 저장 var secondOperand = "" // 새롭게 입력되는 값을 저장 var result = "" var currentOperation: Operation = .Unknown // 현재 계산기에 어떤 연산자가 입력되었는지. 연산자의 값을 저장 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func tapNumberBtn(_ sender: UIButton) { guard let numberValue = sender.title(for: .normal) else { return } if self.displayNumber.count < 9 { self.displayNumber += numberValue self.numberOuputLabel.text = self.displayNumber } } @IBAction func tapClearBtn(_ sender: UIButton) { self.displayNumber = "" self.firstOperand = "" self.secondOperand = "" self.result = "" self.currentOperation = .Unknown self.numberOuputLabel.text = "0" } @IBAction func tapDotBtn(_ sender: UIButton) { if self.displayNumber.count < 8, !self.displayNumber.contains(".") { self.displayNumber += self.displayNumber.isEmpty ? "0." : "." self.numberOuputLabel.text = self.displayNumber } } @IBAction func tabDivideBtn(_ sender: UIButton) { self.operation(.Divide) } @IBAction func tabMultiplyBtn(_ sender: UIButton) { self.operation(.Multiply) } @IBAction func tabSubtractBtn(_ sender: UIButton) { self.operation(.Subtract) } @IBAction func tabAddBtn(_ sender: UIButton) { self.operation(.Add) } @IBAction func tabEqualBtn(_ sender: UIButton) { self.operation(self.currentOperation) } // 계산을 담당하는 함수 func operation(_ operation: Operation) { if self.currentOperation != .Unknown { // 연산자 버튼이 눌려있는 상태 if !self.displayNumber.isEmpty { self.secondOperand = self.displayNumber self.displayNumber = "" guard let firstOperand = Double(self.firstOperand) else { return } guard let secondOperand = Double(self.secondOperand) else { return } // 연산 수행 switch self.currentOperation { case .Add: self.result = "\(firstOperand + secondOperand)" case .Subtract: self.result = "\(firstOperand - secondOperand)" case .Divide: self.result = "\(firstOperand / secondOperand)" case .Multiply: self.result = "\(firstOperand * secondOperand)" default: break } if let result = Double(self.result), result.truncatingRemainder(dividingBy: 1) == 0 { self.result = "\(Int(result))" } self.firstOperand = self.result self.displayNumber = self.result } self.currentOperation = operation } else { // 연산자버튼이 안눌린 상태 -> 연산자 버튼 클릭 self.firstOperand = self.displayNumber self.currentOperation = operation // 선택한 연산자 self.displayNumber = "" } } }
'iOS > 패스트캠퍼스(앱제작)' 카테고리의 다른 글
날씨 앱 (0) 2022.05.08 타이머 앱 (0) 2022.05.08 일기장 앱 (0) 2022.04.20 할일 리스트(To-Do List) 앱 (0) 2022.04.03 LED전광판 앱 (0) 2022.04.01