#12 先乘除後加減和考慮負數的計算機 App

程式碼:

import UIKitenum CalculationType {case addcase subtractcase multiplycase dividecase none}class ViewController: UIViewController {var calculation : CalculationType = .nonevar beforeNumbers = 0.0var afterNumbers = 0.0var startNew = true@IBOutlet weak var displayLabel: UILabel!override var preferredStatusBarStyle: UIStatusBarStyle {return .lightContent}@IBAction func numbers(_ sender: UIButton) {let inputNumbers = sender.tag — 1if self.startNew == true {self.displayLabel.text = “\(inputNumbers)”self.startNew = false}else {if self.displayLabel.text! == “0” || self.displayLabel.text! == “+” || self.displayLabel.text! == “-” || self.displayLabel.text! == “X” || self.displayLabel.text! == “/” {self.displayLabel.text = “\(inputNumbers)”}else {self.displayLabel.text = self.displayLabel.text! + “\(inputNumbers)”}}self.afterNumbers = Double(self.displayLabel.text!)!}@IBAction func add(_ sender: UIButton) {self.displayLabel.text = “+”self.calculation = .addself.beforeNumbers = self.afterNumbers}@IBAction func subtract(_ sender: UIButton) {self.displayLabel.text = “-”self.calculation = .subtractself.beforeNumbers = self.afterNumbers}@IBAction func multiply(_ sender: UIButton) {self.displayLabel.text = “X”self.calculation = .multiplyself.beforeNumbers = self.afterNumbers}@IBAction func divide(_ sender: UIButton) {self.displayLabel.text = “/”self.calculation = .divideself.beforeNumbers = self.afterNumbers}@IBAction func result(_ sender: UIButton) {switch self.calculation {case .add :self.afterNumbers = self.beforeNumbers + self.afterNumbersturnNumber(self.afterNumbers)case .subtract :self.afterNumbers = self.beforeNumbers — self.afterNumbersturnNumber(self.afterNumbers)case .multiply :self.afterNumbers = self.beforeNumbers * self.afterNumbersturnNumber(self.afterNumbers)case .divide :self.afterNumbers = self.beforeNumbers / self.afterNumbersturnNumber(self.afterNumbers)case .none :self.displayLabel.text = “\(self.afterNumbers)”}self.startNew = true}@IBAction func clean(_ sender: UIButton) {self.displayLabel.text = “0”self.beforeNumbers = 0self.afterNumbers = 0self.calculation = .noneself.startNew = true}func turnNumber ( _ number : Double ) {var okText : Stringif floor(number) == number {okText = “\(Int(number))”}else {okText = “\(number)”}if okText.count >= 10 {okText = String(okText.prefix(10))}self.displayLabel.text = okText}override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.}}

--

--