扫描仪java扫描仪



在下面的代码下无法理解一件事,希望有人可以帮助:

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,那么如果6,则可以添加3个元素,依此类推。但是我看不到此代码中的数组。
也许我错过了for循环的东西?

您在循环中使用in.nextInt(),因此每次获得新值以输入时,也许您想将n%7放置?

nextInt()方法从扫描仪对象接受下一个int。由于您将InputStream(System.in(传递给扫描仪对象的构造函数,如果对象为"空" - 在这种情况下没有任何int值 - 它要求用户再次输入一个数字。

当您第一次接受用户的数字时,它被存储在n中,但是扫描仪对象变为空。

因此,每次在循环中调用nextInt()时,您都会接受键盘(用户(的值。这相当于将用户的所有输入存储在数组中,然后进行计算,除非立即在输入上完成操作