scanner.nextLine() 和 scanner.nextInt() 之间的区别

Difference Between scanner.nextLine() and scanner.nextInt()

提问人:Paras Waqar 提问时间:5/15/2023 更新时间:5/15/2023 访问量:8

问:

挑战详情:

在此挑战中,您将从控制台读取用户输入的 5 个有效数字, 并打印这十个数字的总和。您需要检查输入的数字是否为有效整数。如果没有,请向控制台打印消息“无效号码”,但继续循环,直到您有 5 个有效号码。 在用户输入每个数字之前,提示他们消息“输入数字 #x:”,其中 x 代表计数、1、2、3 等。举个例子,第一条消息看起来像“输入数字#1:”,下一条消息是“输入数字#2:”,依此类推。


代码块#01:它工作得非常好,并且迭代地要求我输入一个有效的整数作为输入

public static void readUserInput(){
    Scanner scanner = new Scanner(System.in);
    int i = 1;
    int sum = 0;
    while(i<=5){
        try {
            System.out.println("Enter number # "+i +": ");
            String number = scanner.nextLine();
            int numberInt = Integer.parseInt(number);
            i++;
            sum+=numberInt;
        } catch (Exception e) {
            System.out.println("Invalid Number");
        }
    }

}

代码块#02:它卡在一个无限循环中,打印“输入数字#1”和“无效数字”不允许我输入任何数字

public static void readUserInput(){
    Scanner scanner = new Scanner(System.in);
    int i = 1;
    int sum = 0;
    while(i<=5){
        try {
            System.out.println("Enter number # "+i +": ");
            Int numberInt = scanner.nextInt();
            i++;
            sum+=numberInt;
        } catch (Exception e) {
            System.out.println("Invalid Number");
        }
    }

}

在这种情况下,想了解 scanner.nextLine() 和 scanner.nextInt() 之间的区别。 为什么 1 个工作正常,而另一个工作不正常。

循环 java.util.scanner

评论

0赞 Scott Hunter 5/15/2023
一旦失败,扫描程序将永远不会超过该“坏”整数,因此每次尝试读取整数时都会失败。由于没有失败,即使读取的字符串不是有效的整数,它也可以继续成功读取新输入。nextIntnextLine

答: 暂无答案