二维数组的定义和初始化
动态初始化格式:
数据类型 变量名[][] = new 数据类型[m][n];
示例:
int[][] num = new int[3][4];
例题:有一栋房子,有3层,每层有4间房子,动态初始化每间房间,并打印输出每间房间的房间号例如第一层,第一间为101。
分析:这时候可以把每一层看成一个(楼层)元素存入一个长度为3的数组中,而每层有4间房子,可以理解为把每4间房子存入一个楼层中,每间房子就是楼层数组中的元素。
代码实现:
public class Test7 {
public static void main(String[] args) {
int[][] fz = new int[3][4];
for (int i = 0; i < fz.length; i++) {
for (int j = 0; j < fz[i].length; j++) {
fz[i][j] = (i + 1) * 100 + (j + 1);
}
}
for (int[] ints : fz) {
for (int anInt : ints) {
System.out.print(anInt + "号房间 ");
}
System.out.println();//换行
}
}
}
结果:
静态初始化格式:
数据类型 变量名[][] = {{元素1, 元素2, 元素3}, {元素1, 元素2, 元素3}, {元素1, 元素2, 元素3}};
示例:
int[][] num = {{11, 22, 33}, {44, 55, 66}, {77, 88, 99}};
注意:与动态初始化二维数组不同,静态初始化的二维数组里面放的每个数组的长度是可以不同的。
示例:
int[][] num = {{11, 22, 33}, {44, 55}, {77}};
例题:使用静态初始化打印下面的杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
public class Test8 {
public static void main(String[] args) {
int[][] num = {{1},{1, 1},{1, 2, 1},{1, 3, 3, 1},{1, 4, 6, 4, 1},{1, 5, 10, 10, 5, 1}};
for (int[] ints : num) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
}
System.out.println();
}
}
}
结果: