java - nextInt 对这段代码中的 Scanner 类做了什么?
问题描述
我有一个必须回答的课堂问题。
编写一个读取整数并计算它们总和的 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()
指令做了什么?
解决方案
numberScanner
将从中读取每个整数,System.in
因为它知道每个数字都由空格分隔。numberScanner.nextInt()
是说“给我读下一个整数。” 比如输入“5 10 15 20”,第一次numberScanner.nextInt()
被调用,x
会等于5。再调用一次,x
会等于10。当你用完数字时,调用nextInt()
会失败,因为没有更多可用的数字(您可以通过检查是否numberScanner.hasNext()
等于真或假来检查是否还有更多数字)。
推荐阅读
- javascript - 使用 ReactJs 编写的网站无法在 Iphone 上运行
- mysql - 调查/问卷中嵌套问题的数据库表
- python - 如何为 NLP 解析 Python 中的每个索引
- c - 交换文件内的字符
- java - 缩放到 0 的 Android 属性动画仍然保持视图可点击,即使文档说它不应该
- html - 不了解 Bootstrap 的 justify-content-between 是如何工作的
- javascript - Knex,插入随机列
- .net - 在 IIS 8.5 中托管相同域名下的两个网站
- dependency-injection - 在视图模型中调用异步方法时,Simple Injector 在 Caliburn.Micro Bootstrapper.Buildup 中引发错误
- pytorch - 增强如何增加图像数量