2012-05-15 50 views
0

我有一個包含do while循環的程序。我需要測試是否出現兩種情況之一。第一個是currentPlayerEnergy不等於0.第二個是quit不成立。代碼如下:在while while循環中進行條件測試

do 
{ 
     switch(answer) 
     { 
      case 'w': System.out.println("Walk"); 
         break; 

      case 'b': System.out.println("Buy"); 
         break; 

      case 'c': System.out.println("Change Character"); 
         break; 

      case 'r': currentPlayerEnergy = 0; 
         break; 

      case 'q': quit = true; 
         break; 
     } 


} 
while ((currentPlayerEnergy > 0) || (quit != true)); 

請注意,我只是測試currentPlayerEnergy變爲零的情況下,「R」。我明白這個問題,Java讀取測試並說,如果當前的能量不爲零,繼續阻止,但它不會檢查退出是否成真。我是否使用錯誤類型的循環?有沒有其他操作數我應該使用,而不是邏輯或?非常感謝。

回答

8

是否有其他歌劇[tor]我應該使用,而不是邏輯或?

是,要使用正確的操作是邏輯 「與」(&&):

while ((currentPlayerEnergy > 0) && !quit); 

我也改變了(quit != true)!quit,但這種變化是純粹的風格。

+0

三江源這麼多!我一直在反覆這個!謝謝! – user1396316

0

你在這裏講什麼PROGRAMM:

while ((currentPlayerEnergy > 0) || (quit != true)); 

是,如果兩個布爾表達式之一是,同時滿足真正的逗留。

只有兩者都是假的,它纔會繼續。你想的邏輯到底該怎麼做aix 說:

while ((currentPlayerEnergy > 0) && !quit); 

注意,(!退出)只是很短的形式(!退出=真)