求一Java前辈帮解释下这个范例

[复制链接]
查看11 | 回复2 | 2010-3-31 11:07:45 | 显示全部楼层 |阅读模式
这个程序是哪里弄来的,写的真是有点扯,它跑出来结果就是会像你说的那样,绝对出不来你说的那个书上的结果,我改一下它应该就会出书上的结果了,你看一下我的注释就会明白了。public class TwoDimArray3 { public static void main(String[] args) {int arr[][];arr=newint[2][];arr[0]=new int[3];arr[1]=new int[5];//java中的二维数组就是一个数组中的每一个元素中又放了一个数组for (int i = 0; i < arr.length; i++) {//对二维数组arr进行遍历,循环要执行2次
for (int j = 0; j < arr.length; j++) {//这里是对每个元素中的数组进行遍历
arr[j] =j+1;
} //for (int j = 0; j < arr.length; j++) {//这个循环就是问题的关键,它又是对数组arr的内容进行遍历,也要执行两次,所以你的结果会重复的出现两次
for (int f=0; f < arr.length; f++) {//它这里是遍历的数组的第i个元素的所有子元素
System.out.print(arr[f]+ " ");//其实这句完全可以写在上一个循环里面,而不再要这个for循环,//其实二维数组的遍历就是只要两个for循环就可以了
} //} System.out.println();} }}//我改过的程序
/*public class TwoDimArray3 { public static void main(String[] args) {int arr[][];arr=newint[2][];arr[0]=new int[3];arr[1]=new int[5]; for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
arr[j] =j+1;
System.out.print(arr[f]+ " ");
}
System.out.println(); } }}这样写更清楚一些,也更简单
*/
回复

使用道具 举报

千问 | 2010-3-31 11:07:45 | 显示全部楼层
LS正解,简单的说就是二维数组先初始化,然后在打印出来,这个程序就是这个功能。注意大括号就行了。。。
回复

使用道具 举报

千问 | 2010-3-31 11:07:45 | 显示全部楼层
实际上是a[3][5] 第一次初始化 第2次的、才是打印
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行