我是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
已显示。
答案 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();
}