Swift中的if语句和选项的逻辑遍历问题。
计算器标签中的零被删除,我不明白为什么会发生这种情况。
大约1:10:03在斯坦福大学的youtube视频这里:https://youtu.be/_IRx1zoriPo?t=1h10m3s。
代码:
import UIKit
class ViewController: UIViewController {
// linked to label
@IBOutlet weak var display: UILabel!
var userIsInMiddleOfTyping = false
// linked to keys 0-9
@IBAction func touchDigit(sender: UIButton) {
let isDigit = sender.currentTitle!
if userIsInMiddleOfTyping {
let textCurrentlyInDisplay = display.text!
display.text = textCurrentlyInDisplay + isDigit
} else {
display.text = isDigit
}
// user now typing
userIsInMiddleOfTyping = true
}
}
最初,程序运行,标签中的零默认设置显示在屏幕上。userIsInTheMiddleOfTyping为false,因此else块运行并在计算器中显示零。然后它被设置为真。
第二次是真的,按下的东西现在都在显示屏上了。然后,按下的内容被连接到显示器中的任何内容。
那么,是什么导致显示器现在取代了零呢?初始值是如何被替换而不是被连接的?
我不是在这里寻找不同的代码,这只是一个任意的例子。感谢您的帮助。干杯
touchDigit是一个操作。除非按下其中一个按钮,否则它不会运行
最初程序运行,标签中的零默认设置在显示中
纠正
userIsInTheMiddleOfTyping为false,因此else块运行
不正确。该方法未运行,因为未按下任何按钮。
我想我通过讨论解决了这个问题。最初,bool为false,因此在第一次按键时会击中else块,零的显示将被按下的任何键所取代。bool随后被设置为true。随后的所有按压都是真的,并且是串联的。