【问题标题】:What does nextInt do with the Scanner class in this code?nextInt 对这段代码中的 Scanner 类做了什么?
【发布时间】:2021-10-13 02:18:47
【问题描述】:

我有一个必须回答的课堂问题。

编写一个读取整数并计算其总和的 do 循环。连续两次读取零或相同值时停止。例如,如果输入为 1 2 3 4 4,则总和为 14,循环停止。作为另一个例子,如果输入是 4 5 1 0,那么总和是 10 并且循环停止。 >

正确的代码是这样的。

    public static void integerCompute() {
        Scanner numberScanner = new Scanner(System.in);
        int x = 0; // Variable to keep track of user input
        int sum = 0; // Variable to keep track of sum
        int before; // Variable to check previously entered number
        
        do {
            before = x;
            System.out.println("Enter a number: ");
            x = numberScanner.nextInt(); // What does this do?
            sum += x;
        } while (x != 0 && before != x);

        System.out.println("Sum is: " + sum);
    }

在这个循环中,x = numberScanner.nextInt() 指令做了什么?

【问题讨论】:

  • 这个next.Int() 函数是从您的输入中返回整数值。
  • 它会在流中留下一个悬空的新行,如果没有被消耗,如果你再次尝试使用nextInt 会导致异常
  • 它等待用户输入并按回车键,然后从他们输入的任何内容中返回下一个整数。如果他们输入了多个用空格分隔的整数,那么这些数字将依次提取无需输入即可循环。如果输入流中没有 int 等待,它只会等待 enter 被按下。

标签: java loops do-loops


【解决方案1】:

numberScanner 将从System.in 中读取每个整数,因为它知道每个数字都由空格分隔。 numberScanner.nextInt() 说“给我读下一个整数”。例如输入“5 10 15 20”,第一次调用numberScanner.nextInt()x等于5。再调用一次,x等于10。当你号码用完了,调用nextInt() 将失败,因为没有更多可用的号码(您可以通过检查numberScanner.hasNext() 是否等于真或假来检查是否还有更多号码)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多