二维数组
定义:
是个 保存相同数据类型(一维数组)的 容器
书写:
数据类型[][] 数组名 = 初值;
举例:
int[][] array = new int[3][4];
System.out.println(array.length);
int[][] array = new int[][]{
{1, 2, 3, 4},
{2, 34, 234, 11},
{23, 44, 66, 55}
};
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();
}
多维数组:
定义:
是 保存 多个相同数据类型(二维数组)的 容器
举例:
int[][][] arr = new int[][][] {
{
{1, 2, 3},
{1, 2, 4},
},
{
{2, 3, 4},
{1, 4, 5},
}
};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
for (int k = 0; k < arr[i][j].length; k++) {
sum = sum + arr[i][j][k];
}
}
}
System.out.println(sum);
迷宫(二维数组)
分析:
1.打印地图
初始坐标 array[1][1]
结束坐标 array[1][9]
2.如何让'0'走起来
通过修改 横纵坐标 让'0'走起来
如何碰到墙'#' 不移动
可以先把要走的位置的元素 取出来判断一下 是不是墙 是墙就不动 不是墙再进行移动
3.循环输入(循环的停止条件 就结束坐标位置 从' '变成'0')
如果有明确的停止的条件 就是用while循环 比较方便
代码:
public static void printArray(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();
}
}
char[][] array = {
{'#','#','#','#','#','#','#','#','#','#'},
{'#','0',' ',' ',' ',' ','#','#',' ',' '},
{'#','#',' ','#','#','#','#','#',' ','#'},
{'#',' ',' ',' ',' ','#','#','#',' ','#'},
{'#',' ','#','#',' ','#',' ',' ',' ','#'},
{'#',' ','#','#',' ','#',' ','#','#','#'},
{'#',' ',' ',' ',' ',' ',' ','#','#','#'},
{'#','#','#','#','#','#','#','#','#','#'},
};
printArray(array);
int x = 1;
int y = 1;
int ex = 1;
int ey = 9;
Scanner scanner = new Scanner(System.in);
while (array[ex][ey] != '0') {
System.out.println("请输入 w a s d");
String string = scanner.nextLine();
switch (string) {
case "w":
if (array[x - 1][y] != '#') {
array[x][y] = ' ';
x = x - 1;
array[x][y] = '0';
}
break;
case "a":
if (array[x][y - 1] != '#') {
array[x][y] = ' ';
y = y - 1;
array[x][y] = '0';
}
break;
case "s":
if (array[x + 1][y] != '#') {
array[x][y] = ' ';
x = x + 1;
array[x][y] = '0';
}
break;
case "d":
if (array[x][y + 1] != '#') {
array[x][y] = ' ';
y = y + 1;
array[x][y] = '0';
}
break;
default:
break;
}
printArray(array);
}
System.out.println("恭喜你通关了");