无法理解下面代码中的一件事,希望有人可以提供帮助:
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int count = 0;
for (int i = 0; i < N; i++){
if (in.nextInt() % 7 == 0){
count++;
}
}
System.out.printf("%d", count);
}
}
Scanner
究竟如何运作?我认为这段代码只能从键盘输入1个输入,但它的作用是将第一个数字作为数组的长度,然后让我有机会输入这些值。
例如,如果我输入3,那么我将能够添加3个元素,如果是6然后是6,依此类推。但是我在这段代码中看不到任何数组 也许我错过了for循环的东西?
答案 0 :(得分:0)
nextInt()
方法接受扫描程序对象中的下一个int
值。由于您将InputStream
(System.in
)传递给了Scanner对象的构造函数,因此如果该对象为空,则为&#39; - 在这种情况下没有任何int
值 - 它要求用户再次输入一个数字。
当您第一次接受用户的号码时,它被存储在N中,但是Scanner对象变空了。
因此,每次在循环中调用nextInt()
时,您都会接受键盘(用户)的值。这相当于将用户的所有输入存储在一个数组中,然后进行计算,除了此处的操作立即在输入上完成
答案 1 :(得分:0)
您在循环中使用in.nextInt()
,因此每次输入新值时,您可能想要使用N%7吗?