swift实现简单的计算器
<p>本文实例为大家分享了swift实现简单计算器的具体代码,供大家参考,具体内容如下</p><p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202201/202212690651356.jpg?20220269727" /></p>
<p>代码</p>
<div class="jb51code"><pre class="brush:cpp;">//
// ViewController.swift
// Calculator
//
// Created by tutujiaw on 15/4/25.
// Copyright (c) 2015年 tutujiaw. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
var sumInMemory: Double = 0.0
var sumSoFar: Double = 0.0
var factorSoFar: Double = 0.0
var pendingAdditiveOperator = ""
var pendingMultiplicativeOperator = ""
var waitingForOperand = true
var displayValue: Double {
set {
let intValue = Int(newValue)
if (Double(intValue) == newValue) {
display.text = "\(intValue)"
} else {
display.text = "\(newValue)"
}
}
get {
return (display.text! as NSString).doubleValue
}
}
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.
}
func calculate(rightOperand: Double, pendingOperator: String) -> Bool {
var result = false
switch pendingOperator {
case "+":
sumSoFar += rightOperand
result = true
case "-":
sumSoFar -= rightOperand
result = true
case "*":
factorSoFar *= rightOperand
result = true
case "/":
if rightOperand != 0.0 {
factorSoFar /= rightOperand
result = true
}
default:
break
}
return result
}
func abortOperation() {
clearAll()
display.text = "####"
}
@IBAction func digitClicked(sender: UIButton) {
let digitValue = sender.currentTitle?.toInt()
if display.text!.toInt() == 0 && digitValue == 0 {
return
}
if waitingForOperand {
display.text = ""
waitingForOperand = false
}
display.text = display.text! + sender.currentTitle!
}
@IBAction func changeSignClicked() {
displayValue *= -1
}
@IBAction func backspaceClicked() {
if waitingForOperand {
return
}
var strValue = display.text!
display.text = dropLast(strValue)
if display.text!.isEmpty {
displayValue = 0.0
waitingForOperand = true
}
}
@IBAction func clear() {
if waitingForOperand {
return
}
displayValue = 0
waitingForOperand = true
}
@IBAction func clearAll() {
sumSoFar = 0.0
factorSoFar = 0.0
pendingAdditiveOperator = ""
pendingMultiplicativeOperator = ""
displayValue = 0.0
waitingForOperand = true
}
@IBAction func clearMemory() {
sumInMemory = 0.0
}
@IBAction func readMemory() {
displayValue = sumInMemory
waitingForOperand = true
}
@IBAction func setMemory() {
equalClicked()
sumInMemory = displayValue
}
@IBAction func addToMemory() {
equalClicked()
sumInMemory += displayValue
}
@IBAction func multiplicativeOperatorClicked(sender: UIButton) {
var clickedOperator = sender.currentTitle!
var operand = displayValue
if !pendingMultiplicativeOperator.isEmpty {
if !calculate(operand, pendingOperator: pendingMultiplicativeOperator) {
abortOperation()
return
}
displayValue = factorSoFar
} else {
factorSoFar = operand
}
pendingMultiplicativeOperator = clickedOperator
waitingForOperand = true
}
@IBAction func additiveOperatorClicked(sender: UIButton) {
let clickedOperator = sender.currentTitle!
var operand = displayValue
if !pendingMultiplicativeOperator.isEmpty {
if !calculate(operand, pendingOperator: pendingMultiplicativeOperator) {
abortOperation()
return
}
displayValue = factorSoFar
factorSoFar = 0.0
pendingMultiplicativeOperator = ""
}
if !pendingAdditiveOperator.isEmpty {
if !calculate(operand, pendingOperator: pendingAdditiveOperator) {
abortOperation()
return
}
displayValue = sumSoFar
} else {
sumSoFar = operand
}
pendingAdditiveOperator = clickedOperator
waitingForOperand = true
}
@IBAction func unaryOperatorClicked(sender: UIButton) {
let clickedOperator = sender.currentTitle!
var result: Double = 0
if clickedOperator == "Sqrt" {
if displayValue < 0 {
abortOperation()
return
}
result = sqrt(displayValue)
} else if clickedOperator == "x^2" {
result = pow(displayValue, 2)
} else if clickedOperator == "1/x" {
if displayValue == 0 {
abortOperation()
return
}
result = 1.0 / displayValue
}
displayValue = result
waitingForOperand = true
}
@IBAction func equalClicked() {
var operand = displayValue
if !pendingMultiplicativeOperator.isEmpty {
if !calculate(operand, pendingOperator: pendingMultiplicativeOperator) {
abortOperation()
return
}
operand = factorSoFar
factorSoFar = 0.0
pendingMultiplicativeOperator = ""
}
if !pendingAdditiveOperator.isEmpty {
if !calculate(operand, pendingOperator: pendingAdditiveOperator) {
abortOperation()
return
}
pendingAdditiveOperator = ""
} else {
sumSoFar = operand
}
displayValue = sumSoFar
sumSoFar = 0.0
waitingForOperand = true
}
}
</pre></div>
<p>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持琼殿技术社区。</p>
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>Swift实现简单计算器</li><li>Swift实现复数计算器</li><li>Swift实现简单计算器项目</li><li>Swift实现简易计算器功能</li><li>使用swift实现计算器功能</li><li>swift实现简易计算器项目</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]