话不多说,直接上代码
public class array1 {
public static void main(String[] args) {
int array[][]={{1,2,3},{4,5,6}}; //定义一个二维数组
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.println(array[i][j]+"");
}
System.out.println(); //输出第二行数组换行
}
}
首先呢,在第一个for循环中,i的循环上限是array.length,但是array数组是一个二维数组,它的值是多少呢?我们先不用管它,我们来看内循环,循环变量j是从0开始,而j的循环上限是array[i].length,这种写法实际上就是引用二维数组的某一个元素,但是,现在用的下标是数组的一个下标,代码中的二维数组可以定义成int[][] array=new[2][3]。即2行3列。我们可以想象在内存空间中有这样一个存储情况,即:
array0 | 1 | 2 | 3 |
---|---|---|---|
array1 | 4 | 5 | 6 |
因此在java中,可以将二维数组理解成由一维数组组成的一维数组,就构成了二维数组,在第一行中,它的值是1,2,3.第二行它的值是4,5,6。在第一次循环中,外循环 i 的初始值是0,即array[0]的长度,即内循环的上限array[0].length=3,所以打印出来的第一个元素是array[0][0],第二个元素是array[0][1],第三个元素是array[0][2]。第二次循环,回到外循环,那么外循环上限array.length是多少呢,其实在二维数组中,数组的长度是以行数为标准,即在上边代码定义的是一个2行3列的数组,所以,array.length=2。所以同理可得第二次循环中,打印出来的元素是array[1][0]、array[1][1]、array[1][2]。