如果声明没有按预期工作

时间:2013-07-19 17:02:34

标签: objective-c if-statement

我在这里有一些代码,我想要发生的是,每次触发时,整数'生命'都会减少一个。这是我的代码。

  if (match == NO)

    {
        self.wrongLetters = [self.wrongLetters stringByReplacingOccurrencesOfString:letterToCheck withString:@""];
        self.wrongLetters = [self.wrongLetters stringByAppendingString:letterToCheck];

        while (!lives == 0)
        {
            lives--;
            self.HangmanStatus.text = [[NSString alloc] initWithFormat:@"Lives Left: %d", lives ];
        }
    }

但不是一个一个地下降,而是一直下降到0。 我是否错误地触发了它? 建议很棒,谢谢

3 个答案:

答案 0 :(得分:2)

你想:

while (lives != 0) {
}

另一种选择是:

while (lives > 0) {
}

这将以某种方式防止生命消极。

但是,如果您只想让生命停止一次,请将while更改为if

if (lives > 0) {
}

表达式!lives == 0否定lives的值,然后检查该值是否等于0.不是你想要的。

答案 1 :(得分:1)

while(!(lives == 0))应该解决您的问题。

或者,更好的是,while(lives != 0)

由于应用操作的顺序,而(!lives == 0)实际应用了!生活的操作者,这不是你想要做的。

答案 2 :(得分:0)

生命在一个while循环中,条件是“生命不等于0,减少生命。”因此,条件中的语句一直运行直到满足条件 - 直到生命等于零。