2017-01-23 117 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