首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在swift & program crush中使用bool的目的

在swift & program crush中使用bool的目的
EN

Stack Overflow用户
提问于 2015-06-27 15:08:07
回答 2查看 88关注 0票数 0

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

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

代码语言:javascript
复制
var userIsInTheMiddleOfTypyingANmuber: Bool = false

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

我会添加图片,但我不能,因为我没有足够的名誉点。

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

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

代码语言:javascript
复制
import UIKit

class ViewController: UIViewController
{

    @IBOutlet weak var display: UILabel!


    var userIsInTheMiddleOfTypyingANmuber: Bool = false


    @IBAction func appendDigit(sender: UIButton) {

        let digit = sender.currentTitle!

        if userIsInTheMiddleOfTypyingANmuber {

           display.text = display.text! + digit

        } else {

            display.text = digit

            userIsInTheMiddleOfTypyingANmuber = true

        }
    }
EN

回答 2

Stack Overflow用户

发布于 2015-06-27 16:19:45

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

在伪代码中仔细考虑:

代码语言:javascript
复制
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)

祝你编码愉快。

票数 0
EN

Stack Overflow用户

发布于 2015-06-27 16:32:30

1)关于

代码语言:javascript
复制
var userIsInTheMiddleOfTypyingANmuber: Bool = false 

这里的userIsInTheMiddleOfTypyingANmuber (一个flag变量)是为了确保在每次开始输入数字时重置display标签。

例如,计算12345 + 789

1)输入1。->初始flagfalse,因此display = 1

2)继续输入2345 ->flag is true now,则display = 12345

3)输入+ -> Reset flag to false

4)输入7 ->由于flagfalse,则display =7(即make 12345 gone,reset)。

否则,display将为123457(错误!)。

5)继续输入89 -> flag is true now,则display = 789

2)关于crash,因为没有相关的错误信息,所以很难说。但是,基本上,要确保所有Label Button控制器都与ViewController连接良好,否则将导致崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31086152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档