这个java 编程有什么错误

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:20:56
public class Ex4_9{
public static void main(String args[]){
int a[][]={{1,2},{3,4,5}},i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++)System.out.print(a[i][j]+" ");
System.out.println();
}
}
}

Java的二维数组不是自动填充为矩形的
a[0] = {1,2},不是{1,2,0}
所以访问a[0][2]时候会抛出异常

越界了喽,应该这样编写的:
public class Ex4_9{
public static void main(String args[]){
int a[][]={{1,2},{3,4,5}},i,j;
for(i=0;i<2;i++){
for(j=0;j<a[i].length;j++)System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
以后要注意数组的界限啊!

z309893455回答正确。
我想补充两点:
1、Java中可以定义不等长的数组元素,正如filoplume所说,它不会自动填充为矩形。
2、这位老兄是不是C语言写多了。变量可以不一开始就定义,建议将i、j定义到for循环里面去,写成这样:
for(int i=0;i<2;i++){
for(int j=0;j<a[i].length;j++)
System.out.print(a[i][j]+" ");
}

定义数组的语法错拉