Problem: I'm trying to do simple Int Calculator in Swift for MacOS. It's working great, except two things. I want to display "ALARM" in label when I divided by zero. Also, if the first input number is "0", so after pressing multiply button(for example 0*5), it output "5" in label instead "0". I looked for the solve, I tried all possible variant, but it doesn't work as I want.
@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()
}
It's a part of my code, I think the problem is here. For every button I used functions. I sighted if labelString value is, for example, "333", then after dividing dy zero it write 333 (5 / 0 = 333). But it doesn't work with words. What to do with multiplying I don't know at all.
Question: How I must fix my code, to make everything work?