Return number 当number = 0

Return number when the number = 0

我的应用程序有一个按钮,该按钮使标签从 5 变为 1 (5..4..3..2..1)。当数字变为 0 时,我想要的是 return 再次变为 5。我已经尝试过了,但是不起作用。有人有什么建议吗?

@IBOutlet weak var NbrLabel: UILabel!

var Nbr = 5
override func viewDidLoad() {
    super.viewDidLoad()
    if Nbr == 0 {
        Nbr == 5
        NbrLabel.text = "\(Nbr)"

    }
}

@IBAction func ICButton(sender: UIButton) {
    Nbr -= 1
    NbrLabel.text = "\(Nbr)"
}

这应该有效:

@IBOutlet weak var NbrLabel: UILabel!

var Nbr = 5

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

}

@IBAction func ICButton(sender: UIButton) {
    Nbr -= 1

    if Nbr == 0 {

        Nbr = 5
    }

    NbrLabel.text = "\(Nbr)"
}

你是编程初学者吗?

应在 IBAction 方法中检查与最大数量(在您的情况下为 5)是否相等。在 viewDidLoad 方法中,您应该只设置带有初始值的标签,该初始值将在您的视图加载后显示(如果您有单视图应用程序 - 在您的应用程序启动时)。尝试这样的变体:

let NbrMaxValue = 5

class ViewController: UIViewController {
    @IBOutlet weak var NbrLabel: UILabel!
    var Nbr = NbrMaxValue
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        NbrLabel.text = "\(Nbr)"
    }

    @IBAction func ICButton(sender: UIButton) {
        --Nbr
        if Nbr == 0 { Nbr = NbrMaxValue }
        NbrLabel.text = "\(Nbr)"
    }
}

嗯..我知道这已经有一个公认的答案,但倒数可以被认为是 -

 5 - 0 = 5
 5 - 1 = 4
 5 - 2 = 3
 5 - 3 = 2
 5 - 4 = 1

因此而不是使用 if 语句为什么不增加计数器并使用像 -

这样的模数表达式
var counter = 4 // initial value to start with

var value = 5 - ((counter + 1) % 5) // execute this line on button press

注意 - 这只是一个示例,用于演示在不使用 if 语句检查零的情况下向后计数。