计算器应用程序中的除法和乘法为零的问题



问题:我试图在Swift for MacOS中做简单的Int计算器。它工作得很好,除了两件事。我想显示";报警";当我除以零时,在标签中。此外,如果第一个输入数字是"0";0";,因此在按下乘法按钮(例如0*5(之后;5〃;在标签中改为";0〃;。我寻找解决方案,我尝试了所有可能的变体,但它并没有像我想要的那样起作用。

@IBAction func pressEqual(_ sender: NSButton) {

guard let number: Int = Int(labelString)
else { return }

if currentMode == Operation.noOp || lastMode {
return
}

if currentMode == Operation.add {
savedNumber = savedNumber + number
} else if currentMode == Operation.subtract {
savedNumber -= number
} else if currentMode == Operation.multiply {
savedNumber *= number
} else if currentMode == Operation.divide {
if number == 0 {
labelString = "Banned"
currentMode = Operation.noOp
self.updateDisplay()
} else {
savedNumber /= number
}
}
currentMode = Operation.noOp
labelString = "(savedNumber)"
lastMode = false

self.updateDisplay()
}

这是我代码的一部分,我认为问题就在这里。对于每个按钮,我都使用了功能。我看到了labelString值是否为";333〃;,则在将dy除以零之后,它写入333(5/0=333(。但它不适用于文字。我根本不知道该怎么乘。

问题:我必须如何修复我的代码,才能使一切正常工作?

尝试以下逻辑:

if currentOp == Operation.add {
savedNumber += number
} else if currentOp == Operation.subtract {
savedNumber -= number
} else if currentOp == Operation.multiply {
savedNumber *= number
} else if currentOp == Operation.divide && number != 0 {
savedNumber /= number
} else if currentOp == Operation.divide && number == 0 {
label.stringValue = "Banned"
return
}

最新更新