这是我的代码。对于任何类型的输入,我得到输出 0 0 0 0 0 0 0 0 0 0 我不明白为什么?
import java.util.*;
class TestArray{
int[] a=new int[10];
TestArray(){
for(int ele:a){
Scanner src=new Scanner(System.in);
ele=src.nextInt();
}
}
}
class TestArrayLoop{
public static void main(String[] args){
TestArray a=new TestArray();
for(int ele:a.a){
System.out.print(ele+" ");
}
}
}
最佳答案
您误解了数组元素引用的工作原理。您不能使用 for
-each 循环来更改数组中元素的值
在此代码中
for(int ele:a){
Scanner src=new Scanner(System.in);
ele=src.nextInt();
}
您正在声明一个新变量ele
,它将设置为数组中的每个下一个值。当你这样做时
ele=src.nextInt();
您正在更改变量的值,而不是数组中的元素。使用普通索引 for 循环。并且不要在每次迭代时创建新的 Scanner
对象。
Scanner src=new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
a[i] = src.nextInt();
}
关于java - 通过构造函数从用户获取输入时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934315/