【发布时间】:2016-03-23 16:37:19
【问题描述】:
我刚开始学习java。看看我的代码,使用增强的 for 循环将 1 添加到 2D 数组的每个元素。我还在eclipse中附上了我的代码图片。Code for Enhanced for loop
package multi_array;
public class MainClass {
public static void main(String args[]){
int array[][]={{1,2,3}, {4,5,6}, {7,8,9}};
add_1(array);
}
public static void add_1(int a[][]){
for(int[] a_row: a){
for(int i: a_row){
a_row[i]+=1;
}
}
for(int[] a_row: a){
for(int i: a_row){
System.out.print(a_row[i]+"\t");
}
System.out.println("\n");
}
}
}
现在,当我尝试运行程序时,我收到下面显示的错误消息。我还附上了错误信息的图片。Error message
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at multi_array.MainClass.add_1(MainClass.java:12)
at multi_array.MainClass.main(MainClass.java:6)
如何更正此代码?
好的朋友们,首先对我的代码缩进很抱歉,毕竟这是我在stackoverflow上的第一个问题。我通过替换得到了正确的结果
for(int i: a_row){
a_row[i]+=1;
}
用代码
for(int i=0; i<a_row.length; i++){
a_row[i]+=1;
}
但我只是想知道仅使用 foreach 循环是否可以得到想要的结果。
【问题讨论】:
-
为什么你的语言标签会向这个问题发送垃圾邮件?
-
你应该直接复制粘贴代码并返回错误而不是提供截图。
-
你使用数组元素作为它的索引而不是
-
阅读更多关于 java 中数组的信息,代码中的 int i 是数组的值而不是索引。
-
for(int i: a_row){-->for(int i=0; i < a_row.length; ++i){