这是我的代码。对于任何类型的输入,我得到输出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+" ");
}
}
}
答案 0 :(得分:1)
您误解了数组元素引用的工作原理。你不能使用for
- 每个循环来改变数组中元素的值
在此代码中
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();
}
答案 1 :(得分:0)
这是错误的:
for(int ele:a){
Scanner src=new Scanner(System.in);
ele=src.nextInt();
}
使用带索引的传统循环