2012-09-25 35 views
0

我都无法在互联网上找到任何提示。 几乎没有提及'为每个'说'不能改变分配在阵列上的值' 是不可能的? 我的代码是这样的:我必须使用扫描仪阅读数字,并且每个

Scanner in = new Scanner(System.in); 
int[] arr = new int[5]; 
for(int i : arr) 
    i = in.nextInt(); 

我想用“的每个”,并通过使用扫描仪类 请帮我看号码..

+0

是否有一个原因,你想使用 - 每个而不是一个标准?家庭作业也许? –

回答

4

使用简单for循环,并读取号码添加到数组的第i位置:

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

它没有多大意义,使用增强for循环在您的特定情况下,因为你的阵列最初是空的。您可以在创建阵列上使用它,然而,迭代,那就是:

for (int i : arr) { 
    System.out.println(i); 
} 
+0

使用'for each'是不可能的? – beginner

+0

@beginner:在这个特定的场景中,它没有多大意义,因为你正在构建一个数组。 –

0

像这样简单: -

Scanner in = new Scanner(System.in); 
int[] arr = {0, 1, 2, 3, 4}; 

for (int i : arr) { 
    arr[i] = in.nextInt(); 
} 

但如上所述通过João Silva说,你应该使用 - 每个循环只遍历一个已经初始化的数组,而不是初始化它..

+1

在每次迭代中'i'是否是arr [i]的值,而不是索引? –

+0

@ColinD正确。由于数组元素初始化为0,他不断更新arr [0] –

+0

O .. ..什么错误..感谢科林指出..然后我们的数组必须初始化为一些值.. **刚刚看到hmjd答案上面..并得到了答案..在这里编辑.. –