在swift&;中使用bool的目的;节目粉碎

在swift&;中使用bool的目的;节目粉碎,swift,ios8,Swift,Ios8,我正在网上观看斯坦福iOS8课程,我有一个关于使用bool的目的的问题 第一部分是关于创建计算器的。本节的第一课是关于在计算器屏幕上显示用户按下的数字。讲师指出,为了显示每个数字的开头不带零的数字,程序应该有这个布尔变量 var userIsInTheMiddleOfTypyingANmuber: Bool = false 然而,我真的不明白它在这个项目中是如何工作的,或者为什么讲师会这样使用它。有人能给我解释一下吗?为什么我的程序在按下键盘上的任意两个数字后会崩溃?提前谢谢 我本想添加照片,

我正在网上观看斯坦福iOS8课程,我有一个关于使用bool的目的的问题

第一部分是关于创建计算器的。本节的第一课是关于在计算器屏幕上显示用户按下的数字。讲师指出,为了显示每个数字的开头不带零的数字,程序应该有这个布尔变量

var userIsInTheMiddleOfTypyingANmuber: Bool = false
然而,我真的不明白它在这个项目中是如何工作的,或者为什么讲师会这样使用它。有人能给我解释一下吗?为什么我的程序在按下键盘上的任意两个数字后会崩溃?提前谢谢

我本想添加照片,但我不能,因为我没有足够的声誉点数

使用布尔变量之前的显示屏幕如下所示: 0567

使用布尔变量后的显示屏幕如下所示: 567


您没有处理代码中零
0
的情况。这就是布尔值的作用。如果
userIsInTheMiddleOfTyping
true
,则表示您不在输入的开头

在伪代码中仔细考虑:

if userIsTypingFirstDigit (that is, userIsInTheMiddleOfTyping == false)  
   if digitIsZero
      add the zero to the input text
      (but leave userIsInTheMiddleOfTyping as false) 
   else 
      replace the input text with the digit (which replaces any zeros typed)
      set userIsInTheMiddleOfTyping to true
else
   add the digit to the input text (including zeros)
快乐编码。

1)关于

在这里,
用户是inthemiddleoftypinganmuber
(一个
标志
变量)是为了确保每次开始输入数字时都重置
显示
标签

例如,计算
12345+789

1) 输入
1
-->最初,
标志
,因此
显示
=
1

2) 现在继续输入
2345
--->
标志
,然后显示
=
12345

3) 输入
+
--->将
标志重置为

4) 输入
7
--->,因为
标志
,所以
显示
=
7
(即使
12345
消失,重置)。
否则,
显示将是
123457
(错误!!!)

5) 现在继续输入
89
--->
标志
,然后显示
=
789

2) 关于撞车, 因为没有相关的错误信息,所以很难判断。 但是,基本上,要确保所有
标签
按钮
控制器都与ViewController连接良好,否则会导致崩溃

if userIsTypingFirstDigit (that is, userIsInTheMiddleOfTyping == false)  
   if digitIsZero
      add the zero to the input text
      (but leave userIsInTheMiddleOfTyping as false) 
   else 
      replace the input text with the digit (which replaces any zeros typed)
      set userIsInTheMiddleOfTyping to true
else
   add the digit to the input text (including zeros)
var userIsInTheMiddleOfTypyingANmuber: Bool = false