如何在Java中使用“ for each”获取输入?

时间:2019-02-14 13:44:14

标签: java

我是Java的初学者。我对每个人都有疑问。 我可以使用它来获取用户的输入吗? 如果是,如何?

我尝试了这段代码,但是没有用:

Scanner scanner = new Scanner(System.in);
int[] arr = new int[3];
for(int m: arr){
    m = scanner.nextInt();
 }
//arr[0] = 1 , arr[1] = 5 , arr[2] = 61

但是当我打印数组时:
0 0 0
已显示。

3 个答案:

答案 0 :(得分:1)

您应该为此使用带索引的for循环,以便写入数组:

    Scanner scanner = new Scanner(System.in);
    int[] arr = new int[3];
    for(int i=0;i<arr.length;i++)
    {
        arr[i]=scanner.nextInt();
    }

当前,对于for-each而言,您正在从数组中获取m的值,将其设置为用户输入,但没有将其重新添加到数组中。因此,您的数组保持为空。

答案 1 :(得分:1)

int[] arr = new int[3];设置了array个3 0 s。

在循环的每次迭代中,m = scanner.nextInt();只是将m设置为输入的内容,而对array则不添加任何内容。

您是否特别需要在foreach循环内分配值?

如果没有,那么只需使用标准的array循环在for中分配一个位置即可-> for (int i = 0; i < arr.length; i++) {并用arr[i]= scanner.nextInt();分配。

如果是这样,我认为您需要设置自己的迭代计数器,并使用它。

答案 2 :(得分:0)

m被声明为本地int并已分配,但未更新数组。您需要将arr [x]设置为等于扫描仪的下一个int。现在,您只是在阅读它,将其分配给m,而对其不执行任何操作。

for(int i=0; i<arr.length; i++){
        arr[i]=scanner.nextInt();

}