我的问题是我可以单击并输入多个数字作为我的第一个值,但是在我使用数学运算符(例如+,-,*,/)之后,它只允许我输入一个值,这与第一次不同运行它,有人可以帮助我吗?
我是Swift的新手,这将是我的第一个Swift应用程序,到目前为止,我还不知道该怎么做或尝试什么。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var Label: UILabel!
var secondNumber: Double = 0;
var firstNumber: Double = 0;
var performingMath = false
var operatorUsed = 0;
@IBAction func cleartext(_ sender: UIButton) {
Label.text = ""
performingMath = false
}
@IBAction func Numbers(_ sender: UIButton) {
if performingMath {
Label.text = String(sender.tag - 1)
secondNumber = Double(Label.text!)!
performingMath = true
} else {
Label.text = Label.text! + String(sender.tag - 1)
secondNumber = Double(Label.text!)!
}
}
@IBAction func Operators(_ sender: UIButton) {
if Label.text != " " && sender.tag != 11 {
firstNumber = Double(Label.text!)!
if sender.tag == 12 {
Label.text = "+"
} else if sender.tag == 13 {
Label.text = "-"
} else if sender.tag == 14 {
Label.text = "*"
} else if sender.tag == 15 {
Label.text = "/"
}
operatorUsed = sender.tag
performingMath = true
} else if sender.tag == 11 {
if operatorUsed == 12 {
Label.text = String(firstNumber + secondNumber)
}
if operatorUsed == 13 {
Label.text = String(firstNumber - secondNumber)
}
if operatorUsed == 14 {
Label.text = String(firstNumber * secondNumber)
}
if operatorUsed == 15 {
Label.text = String(firstNumber / secondNumber)
}
}
}
}
我希望我可以使用数学运算符(例如+-* /)之后输入尽可能多的值
答案 0 :(得分:0)
当performingMath
为true
时更新标签的文本时,只需分配新值,而不是将值添加到现有值(请参见第3行)
@IBAction func Numbers(_ sender: UIButton) {
if performingMath {
Label.text = String(sender.tag - 1) // !! HERE !!
secondNumber = Double(Label.text!)!
performingMath = true
} else {
Label.text = Label.text! + String(sender.tag - 1)
secondNumber = Double(Label.text!)!
}
}
此操作应与performingMath
为false
时执行相同的操作,因此您只需使用以下命令更新此行:
Label.text = Label.text! + String(sender.tag - 1)