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

如何在java中使用“for each”来获取输入?,java,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 已显示。您应该使用带有索引的for

我是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
已显示。

您应该使用带有索引的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的值,将其设置为用户输入,但不将其添加回数组。因此,您的数组仍然为空。

int[]arr=new int[3];设置一个30的数组

在循环的每个迭代中,m=scanner.nextInt;只需将m设置为输入值,而不向数组中添加任何内容

您是否特别需要在foreach循环中指定值

如果没有,那么只需使用标准for循环在数组中指定一个位置,这样做->for int i=0;i
如果是这样的话,我认为您需要设置自己的迭代计数器,并使用它。

m被声明为本地int并赋值,但数组没有被更新。您需要将arr[x]设置为扫描仪的下一个int。现在您只是读取它,将它赋值给m,而不做任何处理

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

}

更改m的值不会修改数组中的元素。请参阅。为每个元素调用的增强for循环只会从正在迭代的数组、集合或iterable中取出元素。它无法将任何内容放回数组中。因此,您似乎在问不可能的问题。