繁体   English   中英

Java - 如何在不使用 while 循环的情况下检查 Scanner 输入是否为整数?

[英]Java - How do I check if a Scanner input is an integer without using a while loop?

我为我的一项任务编写了一个程序,该程序要求输入分配给整数变量。 赋值的一个部分是,如果整数输入不是 1、2、3 或 4,程序应该打印一条语句,说明这是一个无效输入,然后结束程序。

如果用户输入大于 4 或小于 1 的输入,我已经想出了如何让它打印此语句,但我无法弄清楚如何在输入双精度值时获得相同的结果。

我设法通过使用 while 循环检查输入是否为整数来使其工作,

while (!input.hasNextInt()){
    System.out.println("Invalid choice. Good-bye.");
    input.next();
}
int selection = input.nextInt();

我希望它将其识别为无效输入,然后在那里结束程序。 相反,它等待用户的另一个有效输入

根据分配的预期结果:“如果用户输入 1、2、3 或 4 以外的任何内容,程序应打印“无效选择。 再见。” ”

您没有提到输入有效数字或用户输入整数以外的任何内容时会发生什么。
因此,当用户输入非整数值或不在 1 和 4 之间的整数时,此代码将退出程序:

Scanner input = new Scanner(System.in);
int number = 0;
boolean valid = false;
System.out.println("Enter number: ");
if (input.hasNextLine()) {
    if (input.hasNextInt()) {
        number = input.nextInt();
        if (number >= 1 && number <= 4) {
            valid = true;
            System.out.println("Valid choice:" + number);
        }
    }
    input.nextLine();
    if (!valid) {
        System.out.println("Invalid choice. Good-bye.");
        System.exit(0);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM