java - 你猜为什么这段代码会打印无限量的 "What' ?”

标签 java netbeans

我正在尝试制作一个范围从 1 到 100 之间的猜数字游戏。如果用户猜对了正确的数字,程序将停止。

我当前的代码:

import java.util.Scanner;
import java.util.Random;

public class GuessingGame {
    public static void main(String[] args) {
        Random randomNumber = new Random();
        Scanner reader = new Scanner(System.in);
        System.out.println("What's your guess? ");
        int n = reader.nextInt();
        reader.close();

    int Number = randomNumber.nextInt(100 + 1);
    int guess = n;
     while (guess != Number) {
        System.out.println("What's your guess? ");
        new Scanner(System.in);
    }

    if (guess == Number) {
        System.out.println("Your have guessed the correct number! ");
    }

    else if (guess < Number) {
        System.out.println("Your number is too low! ");
    }

    else if (guess > Number) {
        System.out.println("Your number is too high! ");
    }
}   
}            

最佳答案

这就是在 IDE 中使用格式化程序很有帮助的地方。您将能够看到循环之后的 if 条件应该位于循环内部,并且您应该读取来自输入的猜测。

顺便说一句,除非您明确不想再次从中读取任何内容,否则您永远不应该关闭输入。

尝试

 Random randomNumber = new Random();
 Scanner reader = new Scanner(System.in);
 int number = randomNumber.nextInt(100 + 1);
 while(true) {
    System.out.println("What's your guess? ");
    int guess = reader.nextInt();

    if (guess == Number) {
        System.out.println("You have guessed the correct number! ");
        break; // no need to guess more

    } else if (guess < Number) {
        System.out.println("Your number is too low! ");

    } else if (guess > Number) {
        System.out.println("Your number is too high! ");
    }
}   

关于java - 你猜为什么这段代码会打印无限量的 "What' ?”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51019004/

相关文章:

java - Android:如何以编程方式从 fragment 中单击先前位于 Activity 堆栈中的 Activity 中的按钮?

java - 我如何让 ActionBar 图标/ Logo 也与内容重叠?

java - 用SwingX的ImageView进行CollorAdjust?

java - 构建主项目时如何自动构建子项目?

java - Netbeans 中未使用的查找变量的快捷方式是什么?

java - jackcess -databasebuilder.open 中的数据库路径名

java - Java线程InterruptExceptioon处理仅在某些情况下阻止了进一步的代码执行

java - Lucene 中的术语文档矩阵

java - 如何将对象返回到仍打开的前一帧?

php - 修改 NetBeans 中函数注释的命令/模板。使用 "/** + Enter key"触发