Swift实现简单计算器
短信预约 -IT技能 免费直播动态提醒
本文实例为大家分享了Swift实现简单计算器的具体代码,供大家参考,具体内容如下
使用Storyboard
快速而又方便的进行控件的布局,功能操作简单的进行一些运算;
代码实现
//
// 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
//标记是否输入了小数点
var decimalPointFlag: Bool = false
//是否输入第二操作数
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 中默认是0,如果开始输入数字,则先清除0
if lableResult.text == "0" || (isSecond && secondOperand == 0.0) {
lableResult.text = ""
}
//将用户录入的数添加到lableResult中
lableResult.text = lableResult.text! + sender.titleLabel!.text!
if isSecond {
// secondOperand = (lableResult.text! as NSString).doubleValue
secondOperand = NSString(string: lableResult.text!).doubleValue
}else {
//将lableResult中的字符串转化为双精度数
// 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) {
//确保第二操作数有值
if isSecond {
//除数不能为0
if operatorFlag == "/" && secondOperand == 0 {
print("Error: 除数不能为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("结果: \(result)")
}
}
@IBAction func clear(sender: UIButton) {
//lable对象显示0
lableResult.text = "0"
//第一操作数清零
firstOperand = 0.0
//第二操作数清零
secondOperand = 0.0
//小数点标记设置为假
decimalPointFlag = false
//第二操作数标记设置为假
isSecond = false
//操作清空
operatorFlag = ""
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341