有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java猜测随机数

我正在学习Java,至少我正在尝试。 现在,我制作了一个应用程序,你需要猜测数学生成的随机数。随机的

代码如下:

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!");
    }
}

现在有一个问题,每次你猜对了,你就不能猜错了。 我想不出这个问题。。这一定很简单


共 (2) 个答案

  1. # 1 楼答案

    您需要理解该声明:

    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为止

    注意:由于循环仅在条件为false时结束(不完全为true,某些关键字可以退出,但这是另一个主题),因此可以以无限循环结束,这意味着该条件永远不会为false

    while(true){
        //Statement
    }
    // Unreachable code
    
  2. # 2 楼答案

    只需用while循环替换if语句:

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

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