使用Swift中的if语句和选项的逻辑演练问题。
在计算器标签中删除零,我不会理解为什么会发生这种情况。
大约1:10:03在Stanford 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块运行并在计算器中显示零。然后设置为true。
第二次通过它然后是真的,现在在显示器中按下了什么。按下的内容然后连接到显示器中的任何内容。
那么发生了什么事情,显示器现在取代了零?如何替换初始值而不是连接?
我不是在寻找不同的代码,它只是一个随意的例子。任何帮助赞赏。干杯
答案 0 :(得分:1)
touchDigit是一个动作。除非按下其中一个按钮,否则它不会运行
最初程序运行,标签中的零默认值设置在显示屏
中
正确
userIsInTheMiddleOfTyping为false,因此else块运行
不正确的。该方法无法运行,因为没有按下任何按钮
答案 1 :(得分:0)
我想我通过谈论解决了这个问题。最初bool是假的,因此在初始按键时按下了else块,并且零的显示被按下的任何键替换。然后将bool设置为true。然后所有后续的印刷都是正确的并连接起来。