当前位置:编程学习 > JAVA >>

遍历数组的问题,求解答

这个程序:

public class date {
public static void main(String[] args) {
int b[][]=new int[][]{{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++)
{
for(int c=0;c<b[k].length;c++)
System.out.print(b[k][c]);
System.out.println();
}
}

}

请问for(int c=0;c<b[k].length;c++)这条语句里面的c<b[k].length是什么意思,我理解不了. 遍历 --------------------编程问答-------------------- 相当二一个二维数组,数组里面放的还是数组
b[0].length=1
b[1].length=2
b[2].length=3 --------------------编程问答-------------------- int a[][] = new int[3][4];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
那这个程序呢,i 代表行的话,a[i].length也只有3,怎么会出来4列呢
--------------------编程问答--------------------
引用 2 楼 u011029039 的回复:
int a[][] = new int[3][4];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
那这个程序呢,i 代表行的话,a[i].length也只有3,怎么会出来4列呢

a[i].length不等于3吧 你可以打印出来看下 我现在试不了 --------------------编程问答-------------------- 先找到该数组行的长度,再计算当前行的长度,输出结果 --------------------编程问答-------------------- 此程序的功能是打印已知二维数组

因为你的二维数组 属于不规则二维数组(行的长度不固定)
所以在输出每行时 要判断此行的长度(子数组的length)防止数组下标越界


--------------------编程问答--------------------
引用 2 楼 u011029039 的回复:
int a[][] = new int[3][4];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
那这个程序呢,i 代表行的话,a[i].length也只有3,怎么会出来4列呢

本身就是3行4列  a[i].length=4  [0,4)输出4个  --------------------编程问答-------------------- 额,这不是传说中的二维数组吗 --------------------编程问答-------------------- 二维数组的嵌套, 第一个for循环是返回b数组的长度,第二个for循环是返回b数组里第b[k]个数组里面的b[c]个元素  。 --------------------编程问答-------------------- b[][]是一个二维数组。。第一个for循环遍历了数组的每一行。而for(int c=0;c<b[k].length;c++)遍历各个行中的每一列。由于每行中的列数不一致不能用固定的数字,例如c<4等等,而b[k].length这个就会返回不同行中的不同的列数。 --------------------编程问答-------------------- b[riga][colonna]是二维数组,riga是行,colonna是列,b[riga].length其实也就是告诉你每行有多少列,遍历二维数组就是从第一行的第一列,第二列。。。到第二行的第一列,第二列。。。第riga行的第一列第二列。。。第colonna列,以此类推。 --------------------编程问答--------------------
public class Test {
public static void main(String[] args) {
int b[][] = new int[][] { { 1 }, { 2, 3 }, { 4, 5, 6 } };
for (int k = 0; k < b.length; k++) {
for (int c = 0; c < b[k].length; c++){
System.out.print(b[k][c]);
}
System.out.println();
}
}
}

这段代码是二维数组的遍历写法。
可根据我画的截图理解,二维数组是数组A中有1、2、3三个数组,这三个数组中又分别有各自的数组,所以我们使用for循环的时候要循环2次,第一次循环外层数组,循环内还要针对每个1、2、3数组再次循环,这样我们才能得到最里层数组的元素。
--------------------编程问答--------------------
引用 2 楼 u011029039 的回复:
int a[][] = new int[3][4];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
那这个程序呢,i 代表行的话,a[i].length也只有3,怎么会出来4列呢

new int[3][4];这么实例化完,内存中于鏊分配12块内存空间,详见截图,希望你能看懂,我的回答能帮助到你。祝 好运。
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,