Swift實(shí)現(xiàn)簡單計(jì)算器
本文實(shí)例為大家分享了Swift實(shí)現(xiàn)簡單計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
使用Storyboard
快速而又方便的進(jìn)行控件的布局,功能操作簡單的進(jìn)行一些運(yùn)算;
代碼實(shí)現(xiàn)
// // ?ViewController.swift // ?Swift_Calculator // // ?Created by 周文春 on 16/3/2. // ?Copyright ? 2016年 周文春. All rights reserved. // import UIKit class ViewController: UIViewController { ? ? @IBOutlet weak var lableResult: UILabel! ? ? //第一操作 ? ? var firstOperand: Double = 0.0 ? ? //第二操作 ? ? var secondOperand: Double = 0.0 ? ? //標(biāo)記是否輸入了小數(shù)點(diǎn) ? ? var decimalPointFlag: Bool = false ? ? //是否輸入第二操作數(shù) ? ? var isSecond: Bool = false ? ? //操作符 ? ? var operatorFlag: String = "" ? ? override func viewDidLoad() { ? ? ? ? super.viewDidLoad() ? ? ? ? // Do any additional setup after loading the view, typically from a nib. ? ? } ? ? override func didReceiveMemoryWarning() { ? ? ? ? super.didReceiveMemoryWarning() ? ? ? ? // Dispose of any resources that can be recreated. ? ? } ? ? @IBAction func buttonTap(sender: UIButton) { ? ? ? ? //lableResult 中默認(rèn)是0,如果開始輸入數(shù)字,則先清除0 ? ? ? ? if lableResult.text == "0" || (isSecond && secondOperand == 0.0) { ? ? ? ? ? ? lableResult.text = "" ? ? ? ? } ? ? ? ? //將用戶錄入的數(shù)添加到lableResult中 ? ? ? ? lableResult.text = lableResult.text! + sender.titleLabel!.text! ? ? ? ? if isSecond { // ? ? ? ? ? ?secondOperand = (lableResult.text! as NSString).doubleValue ? ? ? ? ? ? secondOperand = NSString(string: lableResult.text!).doubleValue ? ? ? ? }else { ? ? ? ? ? ? //將lableResult中的字符串轉(zhuǎn)化為雙精度數(shù) // ? ? ? ? ? ?firstOperand = (lableResult.text! as NSString).doubleValue ? ? ? ? ? ? firstOperand = NSString(string: lableResult.text!).doubleValue ? ? ? ? } ? ? ? ? print(firstOperand) ? ? } ? ? @IBAction func decimalPointTap() { ? ? ? ? if !decimalPointFlag { ? ? ? ? ? ? lableResult.text = lableResult.text! + "." ? ? ? ? ? ? if isSecond { ? ? ? ? ? ? ? ? secondOperand = (lableResult.text! as NSString).doubleValue ? ? ? ? ? ? }else { ? ? ? ? ? ? ? ? firstOperand = (lableResult.text! as NSString).doubleValue ? ? ? ? ? ? } ? ? ? ? ? ? decimalPointFlag = !decimalPointFlag ? ? ? ? } ? ? } ? ? @IBAction func operatorTap(sender: UIButton) { ? ? ? ? if firstOperand != 0 { ? ? ? ? ? ? isSecond = true ? ? ? ? ? ? decimalPointFlag = false ? ? ? ? ? ? switch sender.titleLabel!.text! { ? ? ? ? ? ? ? ? case "+": ? ? ? ? ? ? ? ? ? ? ? operatorFlag = "+" ? ? ? ? ? ? ? ? case "-": ? ? ? ? ? ? ? ? ? ? ? operatorFlag = "-" ? ? ? ? ? ? ? ? case "*": ? ? ? ? ? ? ? ? ? ? ? operatorFlag = "*" ? ? ? ? ? ? ? ? case "÷": ? ? ? ? ? ? ? ? ? ? ? operatorFlag = "/" ? ? ? ? ? ? default: ? ? ? ? ? ? ? ? ? ? ? operatorFlag = " " ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? @IBAction func resultTap(sender: UIButton) { ? ? ? ? //確保第二操作數(shù)有值 ? ? ? ? if isSecond { ? ? ? ? ? ? //除數(shù)不能為0 ? ? ? ? ? ? if operatorFlag == "/" && secondOperand == 0 { ? ? ? ? ? ? ? ? print("Error: 除數(shù)不能為0") ? ? ? ? ? ? ? ? return ? ? ? ? ? ? } ? ? ? ? ? ? var result: Double = 0.0 ? ? ? ? ? ? switch operatorFlag { ? ? ? ? ? ? ? ? case "+": ? ? ? ? ? ? ? ? result = firstOperand + secondOperand ? ? ? ? ? ? ? ? case "-": ? ? ? ? ? ? ? ? result = firstOperand - secondOperand ? ? ? ? ? ? ? ? case ?"*": ? ? ? ? ? ? ? ? result = firstOperand * secondOperand ? ? ? ? ? ? ? ? case ?"/": ? ? ? ? ? ? ? ? result = firstOperand / secondOperand ? ? ? ? ? ? default : ? ? ? ? ? ? ? ? result = 0.0 ? ? ? ? ? ? } ? ? ? ? ? ? lableResult.text = result.description ? ? ? ? ? ? print("第一操作: \(firstOperand)") ? ? ? ? ? ? print("操作符: \(operatorFlag)") ? ? ? ? ? ? print("第二操作: \(secondOperand)") ? ? ? ? ? ? print("結(jié)果: \(result)") ? ? ? ? } ? ? } ? ? @IBAction func clear(sender: UIButton) { ? ? ? ? //lable對象顯示0 ? ? ? ? lableResult.text = "0" ? ? ? ? //第一操作數(shù)清零 ? ? ? ? firstOperand = 0.0 ? ? ? ? //第二操作數(shù)清零 ? ? ? ? secondOperand = 0.0 ? ? ? ? //小數(shù)點(diǎn)標(biāo)記設(shè)置為假 ? ? ? ? decimalPointFlag = false ? ? ? ? //第二操作數(shù)標(biāo)記設(shè)置為假 ? ? ? ? isSecond = false ? ? ? ? //操作清空 ? ? ? ? operatorFlag = "" ? ? } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Swift 5.1 之類型轉(zhuǎn)換與模式匹配的教程詳解
這篇文章主要介紹了Swift 5.1 之類型轉(zhuǎn)換與模式匹配的相關(guān)知識,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05swiftui開發(fā)之padding默認(rèn)值設(shè)置詳解
這篇文章主要為大家介紹了swiftui開發(fā)之padding默認(rèn)值設(shè)置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09iOS開發(fā)中Swift 指紋驗(yàn)證功能模塊實(shí)例代碼
本文給大家分享ios調(diào)用touchid代碼塊,非常不錯,具有參考借鑒價(jià)值,需要的朋友參考下把2017-03-03詳解Swift中的數(shù)據(jù)類型類型轉(zhuǎn)換
Swift中的類型轉(zhuǎn)換可以結(jié)合類的繼承等面向?qū)ο蟮木幊烫匦詠磉M(jìn)行,本文中我們就來詳解Swift中的數(shù)據(jù)類型類型轉(zhuǎn)換,需要的朋友可以參考下2016-07-07Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Swift中用到extension的一些基本的擴(kuò)展功能講解
這篇文章主要介紹了Swift的一些基本的擴(kuò)展功能,即extension關(guān)鍵字的使用,需要的朋友可以參考下2015-11-11Swift中循環(huán)語句中的轉(zhuǎn)移語句 break 和 continue
這篇文章主要介紹了Swift中循環(huán)語句中的轉(zhuǎn)移語句 break 和 continue,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的的朋友參考下2016-12-12