Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 猜测随机数_Java - Fatal编程技术网

Java 猜测随机数

Java 猜测随机数,java,Java,我正在学习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;

我正在学习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!");
    }
}
现在有一个问题,每次你猜对了,你就不能猜错了。
我想不出这个问题。。它必须非常简单。

您只需将if语句替换为while循环:

在自然语言中,当你的猜测与随机数不同时,可以翻译成,继续尝试。
如果只使用If,则{}括号内的代码将仅在条件为true时执行,但在此之后,程序将继续执行下一条指令,即System.out.printlngode geraden!;在您的代码中。

您需要理解该语句:

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时才会退出语句

while(player != rnummer) 
{
    System.out.println("Helaas, dat is niet juist.");
    player = keyboard.nextInt();
}
如果条件为true,则if仅执行block语句一次

while将执行该块,直到条件为false

while(player != rnummer) 
{
    System.out.println("Helaas, dat is niet juist.");
    player = keyboard.nextInt();
}
注意:由于循环仅在条件为false(不完全为true)时结束,因此某些关键字可以退出这些关键字,但这是另一个主题,您可以以无限循环结束,这意味着该条件永远不会为false

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

你说的每次猜对都不能猜错是什么意思?这不是一个Java问题,而是一个算法问题。您需要理解条件和循环的概念。这些是完全不同的请提供预期的输出和您实际得到的输出。无论您是否猜测,Goed geraden都会打印出来。这是你的问题解决什么?我们不知道你想要实现什么?请给出@Skyking建议的一些示例输出,它似乎已经解决了问题,谢谢!还没有形成循环。。这就是我使用if的原因。@Luukwa没问题,我们都在这里学习^^我添加了一个简短的解释,我希望它能有用:这使它很容易理解,希望有更多的网站/书籍可以这样解释。@Luukwa,我刚刚添加了一个关于while循环的小评论,这应该是有趣的,以防止一些意外的错误;谢谢,会帮上大忙的!