1.实例需求
输出一个酒店的基本信息:所在楼层、房间编号、房间价格、房间状态、房间的类型
数组非常适合存储这些信息
- 房间的类型: 单人间、双人间,标准间,商务房,豪华包
- 房间的价格: 98 128 148 288 688
- 房间的状态:空闲 有人
- 房间的楼层: 1,2,3,4,5,6.。。。。。
- 房间的编号:101,102,103,104,201,202,203….
2.思路分析
这里包含了很多信息,而且数据类型不同,我们可以利用三维数组与两个一维数组进行循环嵌套来实现这一功能,接着我们可以将这些想法付诸行动。
3.程序代码与分析
package test;
import java.util.Scanner;
public class ch2 {
public static void main(String[] args){
String[] roomTypeArr = {"单人间", "双人间", "标准间", "商务房", "豪华包"}; //房间类型
int[] priceArr = {98, 128, 148, 228, 688}; //房间价格
int[][][] rooms = new int[3][5][3]; //房间信息,3层,每层5个房间,每个房间3个信息(类型,价格,状态
// 遍历房间信息,给房间信息赋值
for (int i = 0; i < rooms.length; i++) {//楼层信息
for (int j = 0; j < rooms[i].length; j++) {//房间号
for (int k = 0; k < rooms[i][j].length; k++) {
switch (k) {
case 0:
rooms[i][j][k] = j; //房间类型
break;
case 1:
rooms[i][j][k] = j;//房间价格
break;
case 2:
rooms[i][j][k] = 0;//房间状态
break;
}
}
}
}
System.out.println("楼层\t\t房间号\t房间类型\t房间价格\t房间状态");
for (int i = 0; i < rooms.length; i++) {//遍历楼层
System.out.print((i + 1) + "\t");
for (int j = 0; j < rooms[i].length; j++) {//遍历房间号 201---楼层*100+房间号
System.out.print("\t" + ((i + 1) * 100 + (j + 1)) + "\t\t");
for (int k = 0; k < rooms[i][j].length; k++) {//遍历房间类型,房间价格,房间状态
switch (k) {
case 0:
System.out.print(roomTypeArr[rooms[i][j][k]] + "\t");
break;
case 1:
System.out.print(priceArr[rooms[i][j][k]] + "元\t");
break;
case 2:
if (rooms[i][j][k] == 0) { //房间状态,0表示空闲,1表示有人
System.out.print("空闲");
} else {
System.out.print("有人");
}
break;
}
}
System.out.println("");
System.out.print("\t");
}
System.out.println("");
}
}
}
定义三个数组(两个一维数组,一个三维数组),通过数字编号代替中文信息,一个房间三个信息,所以一共有45个编号,即45个元素。通过for循环嵌套遍历实现信息输出。用空格,换行控制格式。运行结果如下:
4.总结
以上就是三维数组实例运用的讲解,代码显得比较繁琐,学了元组与集合,就不用这么麻烦了,实验是检验真理的唯一标准,大家不妨可以去试一试。