2013-07-19 2 views
0

여기에 약간의 코드가 있는데 내가 원하는 것은 트리거 될 때마다 정수 'lives'가 하나씩 감소한다는 것입니다. 여기 내 코드가있다.문이 의도 한대로 작동하지 않는 경우

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으로 모든 길을 간다? 조언을 주시면 감사하겠습니다.

답변

2

당신이 원하는 :

while (lives != 0) { 
} 

또 다른 옵션은 다음과 같습니다이 삶을 어떻게 든 부정적 방지합니다

while (lives > 0) { 
} 

.

그러나 생명체가 한 번 떨어지려면 whileif으로 변경하십시오.

if (lives > 0) { 
} 

표현 !lives == 0lives의 값이 그 값이 원하지 무엇을 0으로 동일 있는지 확인 부정.

1

while(!(lives == 0))로 문제를 해결할 수 있습니다.

또는 더 나은 아직, while(lives != 0) 때문에 (!는 == 0을 살고있다) 동안 작업이 적용되는 순서의

실제로 적용됩니다! 운영자는 당신이 원하는 것을 원하지 않습니다.

0

생명은 "while lives is 0, decrement lives"조건의 while 루프 안에 있습니다. 따라서 조건문은 조건이 만족 될 때까지 실행됩니다. 즉 생명이 0이 될 때까지입니다.

관련 문제