【问题标题】:Why won't swift recalculate the 'if' statement?为什么不迅速重新计算'if'语句?
【发布时间】:2016-05-01 15:35:51
【问题描述】:

我正在尝试创建一个非常简单的“猜测游戏”,用户必须在其中猜测计算机有多少手指(最多 5 个手指)。

事情就是这样。当代码执行并按下提交时,即使打印日志记录了正确的数字,应用程序仍会打印不正确的 if 语句。我哪里错了?

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}




@IBOutlet weak var fingerInput: UITextField!

@IBOutlet weak var fingerResult: UILabel!

@IBAction func fingerSubmit(sender: AnyObject) {

    let realNumberofFingers = Int(arc4random_uniform(6))

    print(realNumberofFingers)

    if fingerInput != realNumberofFingers {

        fingerResult.text = "Gosh darn, that's wrong!"

    } else if fingerInput == realNumberofFingers {

        fingerResult.text = "Thats right!"

    }
}

}

【问题讨论】:

    标签: swift if-statement


    【解决方案1】:

    您正在比较 实际 UITextField fingerInputrealNumberofFingers。这是错误的,总是会产生false。你应该做的是从fingerInput 解析字符串并检查该字符串中包含的整数是否等于realNumberofFingers

    @IBAction func fingerSubmit(sender: AnyObject) {
    
        let input = Int(fingerInput.text!)
    
        if let enteredFingers = input {
            let realNumberofFingers = Int(arc4random_uniform(6))
            print(realNumberofFingers)
    
            if enteredFingers == realNumberofFingers {
                fingerResult.text = "Thats right!"
            } else {
                fingerResult.text = "Gosh darn, that's wrong!"
            }
        } else {
            fingerResult.text = "Please enter a correct guess - an integer!"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 2010-12-15
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多