2017-01-23 61 views
0

我正在學習Java的過程中,至少我正在嘗試。 現在我做了一個應用程序,你需要猜測用math.random生成的隨機數。猜測隨機數

下面是代碼:

import java.util.Scanner; 

public class var { 
    public static void main(String[] args) { 

     Scanner keyboard = new Scanner(System.in); 
     //var definitie 
     int player; 
     int rnummer; 

     rnummer = (int) (Math.random() * 50 + 1); 

     System.out.println("Raad het nummer!"); 
     player = keyboard.nextInt(); 
     System.out.println(rnummer); 

     //goed geraden check 
     if (player == rnummer) { 
      System.out.println("Helaas, dat is niet juist."); 
      player = keyboard.nextInt(); 
     } 
     System.out.println("Goed geraden!"); 
    } 
} 

現在有,每一個你猜是正確的時候,你可以沒有猜錯的話有問題。 我找不出這個問題..它一定很簡單。

+0

你是什麼意思,每當你猜對了,你猜不出錯? –

+0

流程看起來很簡單:如果nummer正確(==),則會顯示一條錯誤消息(「dat is niet juist。」),然後讀取另一個數字。然後顯示正向輸出(「Goed geraden!」)。 – BurninLeo

+0

不過,無論我輸入什麼數字,它總是很好,即使當我打印隨機生成的數字並輸入其他內容時也是如此。 – Luukwa

回答

6

你要明白這種說法:

if (player == rnummer) 
{ 
    System.out.println("Helaas, dat is niet juist."); 
    player = keyboard.nextInt(); 
} 

這意味着:

if player is equals to rnummer 
then 
    print "Helaas, dat is niet juist." 
    ask a value and store it in player 
and read the next line 

但你想要的是

if player is NOT equals to rnummer 
then 
    print "Helaas, dat is niet juist." 
    ask a value and store it in player 
check again the condition 

這就是我們所說的循環。這與if類似,但只會在條件爲false時退出語句。如果條件爲真,則if只執行一次塊語句。

A while將執行該塊直到條件爲假。

注意:由於循環只在條件爲假(不完全正確,某些關鍵字可以退出這些,但是這是另一個主題)時結束,所以最終可能會出現無限循環,這意味着條件將永遠不會是假的。

while(true){ 
    //Statement 
} 
// Unreachable code 
+0

這使得它很容易理解,希望有更多的網站/書籍可以解釋它像那。 – Luukwa

+1

@Luukwa有這樣的老師;) – AxelH

+0

@Luukwa,我剛剛添加一個關於while循環的小評論,這應該是有趣的,以防止一些意外的bug;) – AxelH

2

您只需用while循環來替代if聲明:

while (player != rnummer) { 
    System.out.println("Helaas, dat is niet juist."); 
    player = keyboard.nextInt(); 
} 

,在博物語言可以在「當你的猜測是由隨機數不同,不斷嘗試」來tranlated。 如果僅使用if,則{}括號內的代碼只有在條件爲真時纔會執行,但在此之後,程序將繼續執行代碼中的下一條指令System.out.println("Goed geraden!");

+0

這似乎已經修復它,謝謝!還沒有進入循環..那爲什麼我用了一個if。 – Luukwa

+0

@Luukwa沒問題,我們都在這裏學習^^我添加了一個簡單的解釋,我希望它可以是有用的:) – SimoV8