0

我在这里有一些代码,我想要发生的是,每次触发它时,整数“生命”都会下降一。这是我的代码。

  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。我是否错误地触发了它?建议会很棒,谢谢

4

3 回答 3

2

你要:

while (lives != 0) {
}

另一种选择是:

while (lives > 0) {
}

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

但是,如果您只想生命减少一次,while请将if.

if (lives > 0) {
}

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

于 2013-07-19T17:05:10.167 回答
1

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

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

由于应用操作的顺序,while(!lives == 0) 实际上是应用 ! 运营商要生活,这不是你想做的。

于 2013-07-19T17:05:00.190 回答
0

Lives 在 while 循环中,条件为“while lives 不等于 0,递减生命”。因此,条件中的语句将一直运行,直到满足条件——直到生命值等于 0。

于 2013-07-19T17:06:01.730 回答