java - 当在我给定的代码中输入整数以外的输入时,它会进入无限循环

标签 java java.util.scanner

简单的Java程序,需要用户提供5个整数,并检查它们是否是整数,然后找到5个整数的和。如果输入不是整数,则显示 INVALID INPUT,然后再次询问正确的输入。 在最后显示总和

导入java.util.Scanner;

公共(public)类主要{

public static void main(String[] args) {
    int i=0,sum=0;
    Scanner scanner= new Scanner (System.in);
    System.out.println("Enter 5 numbers: ");

    while (i<5){
        System.out.print("Enter number #" + (i+1) + " : ");
        if(scanner.hasNextInt()){
            sum=sum+scanner.nextInt();
            i++;
        }

        else
            System.out.println("Invalid Number");

        }

System.out.println("Sum of numbers is " + sum);
    scanner.close();
}

}

每当输入除 Integer 之外的任何内容时,都会进入无限循环。

最佳答案

对于 Integer 类型以外的任何输入,您的 scanner.hasNextInt() 将始终返回 false。因此该代码块永远不会被执行。 i 的计数永远不会增加,因此进入无限循环。

关于java - 当在我给定的代码中输入整数以外的输入时,它会进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673434/

相关文章:

c# - 将带有 "params"修饰符的 C# 方法转换为 Java

java - context.xml 中有两个数据源的用户 'root' @'localhost' 的访问被拒绝

java - Java中的WebSocket Server(hybi 10)发送和接收

java - 使用java嵌套#if宏处理

java - 无法证明 -100000000000000 适合作为长输入

java - 什么是 Java 中的扫描器跳过以及为什么要使用它?

java - 使 JFreeChart CategoryPlot 看起来像 Flot.js 条形图

java - 将整数流连接到字符串,类型转换问题

java - 如何设置字符串变量并将其作为文件名传递到文件读取器扫描仪中?

java NullPointerException 错误。无输出