二维数组
也是一个容器 保存 相同数据类型的一维数组
数据类型 [][] 数值名 = 初值;
代码示例:
int[][] array = new int[3][4]; //该二维数组中有三个一维数组 每个一维数组中有四个元素
int[][] a = new int[][] {
{1,2,3,4},
{2,34,234,11},
{23,44,66,77},
}; // 二维数组第二种定义方法
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();
} //打印二维数组
二维数组在内存中的表现形式
三维数组
三维数组 保存多个相同数据类型的 二维数组
代码示例:
int[][][] a =new int[2][3][4]; //有两个二维数组 每个二维数组中 有3个一维数组 每个一维数组中有4个元素
int[][][] a =new int[][][] {
{
{1,2,3},
{4,5,6},
},
{
{7,8,9},
{10,11,12},
}
}; //二维数组第二种定义方法
for (int i = 0; i < a.length; i++) { // i,j,k
for (int j = 0; j < a[i].length; j++) {
for (int k = 0; k < a[i][j].length ; k++) {
System.out.print(a[i][j][k]+" ");
}System.out.println();
}
} // 打印三维数组
二维数组迷宫问题
public class Dmoe02 {
//打印地图函数
public static void map(char[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
}System.out.println();
}
//声明要使用的变量
}
public static void main(String[] args) {
char[][] array = {
//y 0 1 2 3 4 5 6 7 8 9
{'#','#','#','#','#','#','#','#','#','#'},//0 ----- x
{'#','0',' ',' ',' ',' ','#','#',' ',' '},//1
{'#','#',' ','#','#','#','#','#',' ','#'},//2
{'#',' ',' ',' ',' ','#','#','#',' ','#'},//3
{'#',' ','#','#',' ','#',' ',' ',' ','#'},//4
{'#',' ','#','#',' ','#',' ','#','#','#'},//5
{'#',' ',' ',' ',' ',' ',' ','#','#','#'},//6
{'#','#','#','#','#','#','#','#','#','#'},//7
};
map(array);
int x = 1, y = 1, ex = 1, ey = 9;
Scanner scanner = new Scanner(System.in);
//判断一下 往哪移动
while (array[ex][ey] != '0') {
System.out.println("请输入 W A S D ");//提示输入W A S D
String string = scanner.nextLine();//接收输入的值
switch (string) {
case "w":
if (array[x - 1][y] != '#') {
array[x][y] = ' ';
// 向上移动 x坐标 -1
x = x - 1;
array[x][y] = '0';
}
break;
case "a":
if (array[x][y - 1] != '#') {
array[x][y] = ' ';
// 向左移动 y坐标 -1
y = y - 1;
array[x][y] = '0';
}
break;
case "s":
if (array[x + 1][y] != '#') {
array[x][y] = ' ';
// 向下移动 x坐标 +1
x = x + 1;
array[x][y] = '0';
}
break;
case "d":
if (array[x][y + 1] != '#') {
array[x][y] = ' ';
// 向左移动 y坐标 +1
y = y + 1;
array[x][y] = '0';
}
break;
default:
break;
}
//修改完毕后打印地图
map(array);
}System.out.println("通关");
}
}