2015-10-31 354 views
-3

我無法理解Java中的某些代碼。我已經研究過,但我仍然無法完全理解它。while循環語句

boolean showShip = false; //set the ship to be hidden by default 

while(!showShip) //dont get this while loop 
{ 
    val = promptForInt("\n" + "Guess again. "); 

    if(val == randomShipLocation) 
    { 
    System.out.println("\n" +" BOOM!"); 
    showShip = false; 
    riverLength[val] = 1; // mark a hit 
    } 
    else { 
    riverLength[val] = -1; // mark a miss 
    } 

    displayRiver(riverLength, showShip); 
} 

我陷入上的部分是while(!showShip)一部分。這個說法是什麼意思?

+3

你能更準確的有關代碼的哪一部分你知道'循環'循環是如何工作的嗎?你知道'!'操作符嗎? – Pshemo

+0

是的,我在這種情況下理解'(A!= B)是真實的'但我不明白它在問題 –

+2

的背景下我想知道你的案例中「研究」是什麼意思。谷歌搜索不是一個很好的方法來研究涉及諸如'!'等標點符號的問題,因爲Google會忽略大多數標點符號。不過,當你說「研究」時,這應該包括通過文檔。 – RealSkeptic

回答

2
while(!showShip) // don't get this while loop 

使用!反轉boolean,所以循環條件是說

while(showShip == false) // This is the long way 

當然爲了退出,你需要設置showShiptrue循環的一小段路,但你的循環的身體從來沒有這樣做。因此,循環是無限。最有可能的意圖已經做

System.out.println("\n" +" BOOM!"); 
showShip = true; 

注:寫「繼續當一個變量是true短的方法是

while (showShip) // skip the == true part 
+0

謝謝你很好的回答非常感謝。 –

3

showShip是一個布爾變量,這意味着它可以是truefalsewhile(!showShip)意味着只要showShip的值爲false,while循環應該保持循環(重複)。

+0

感謝您的幫助。 –