2017-08-18 61 views
-3

嗨,這裏只是一個有趣的數字猜測,有人輸入一個數字,我的while循環將運行,直到它達到輸入的數字。它只是一個while循環練習,因爲我對Java相對陌生,並且想要更多練習。這是我的代碼。 (我使用的IntelliJ IDEA)我的while循環不會啓動

import java.util.Scanner; 
public class Main { 
    public static void main(String[] args) { 
     boolean password = false; 
     int passwordGuess = 0; 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter a Password to be guessed"); 
     int Password = sc.nextInt(); 
     while (password) { 
      System.out.println("Test"); 
      if (passwordGuess == Password){ 
       System.out.println("Your Password is " + passwordGuess); 
       password = true; 
      } 
      else{ 
       System.out.println(passwordGuess); 
       passwordGuess++; 
      } 
     } 
    } 
} 

它打印輸入要猜中的密碼,然後輸入我的數和它打印「退出代碼0完成過程」。任何想法,感謝

+6

你覺得行了''而(密碼)''呢? – f1sh

+0

關閉f1sh提到的內容,看看你擁有'password'的值。如果你知道「while(password)」是什麼,那麼你就會明白爲什麼它不會進入循環。 – Lexi

+0

我很困惑,這與編程無關,詳情請參閱幫助中心。它是一個特定的編程問題,它描述了具體的錯誤問題,並且足夠短以至於被認爲是非最佳包含的示例。如果這是脫離主題,那麼話題是什麼? –

回答

3

你已經初始化密碼變量爲假:

boolean password = false; 

,然後你嘗試,如果密碼是假的用它在你的同時

while (password){/*...*/} 

它不會工作。

+0

謝謝你解決了我的問題 –

2

你有一個變量password你設置爲false。

你從不將它設置爲true,所以你的while循環讀取「while(false)」,這意味着它在運行塊之前退出。

1

while循環只在表達式爲真時循環,並且您將密碼初始化爲false。你的循環應該是這樣的:

while (!password) 
0

如果你想讓你的while循環啓動,那麼設置'boolean password = true'。

0

while(false)將不會啓動,並且當前您的password設置爲false。設置boolean password = true如果您希望您的while循環啓動。

0

我想我必須指出的是,對於任何值,整型轉換爲布爾值都是false。檢查this question and answer.

所以,你可以嘗試的解決方案orhtej2發佈

while (!password)