扫描仪Happy Numbers Java

时间:2018-03-25 11:28:20

标签: java for-loop java.util.scanner

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

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循环的东西?

2 个答案:

答案 0 :(得分:0)

nextInt()方法接受扫描程序对象中的下一个int。由于您将InputStreamSystem.in)传递给了Scanner对象的构造函数,因此如果该对象为空,则为&#39; - 在这种情况下没有任何int值 - 它要求用户再次输入一个数字。

当您第一次接受用户的号码时,它被存储在N中,但是Scanner对象变空了。

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

答案 1 :(得分:0)

您在循环中使用in.nextInt(),因此每次输入新值时,您可能想要使用N%7吗?