java日常练习题day02(简易版-酒店管理系统)

控制台版 - 酒店管理系统

界面:
欢迎进入指针信息大酒店
酒店架构 - 有5层楼,每层楼有5个房间(二维数组)
1.办理入住
房间号 + 名字
判断房间是否有人,如果有人就提示
2.办理退房
房间号
房间本来可能就是没住人,就不需要退房
让客户 = null
3.查房
1001 1002 1003 1004 1005
null null null null null
2001 2002 2003 2004 2005
null null lucy null null
3001 3002 3003 3004 3005
null null null null null
4001 4002 4003 4004 4005
null null null null null
5001 5002 5003 5004 5005
null null null null null

4.退出程序
	按0退出程序 - 退出死循环 - break;
package day02.hotel;
/*
* 客户类
* */
public class Guest {
    String name;
    int id;
    Guest(){

    }
    //有参构造器 - 新来酒店的客户需不需要有名字/需不需要id
    Guest(String name){
        this.name = name;
    }
}
package day02.hotel;
/*
    房间类
 */
public class Room {
    int num;
    //客户
    Guest guest;
    //无参构造器 - 初始化成员变量
    Room(){

    }
    //有参构造器 - 问创建出来的房间需不需要有房间号
    Room(int num){
        this.num = num;
    }
}
package day02.hotel;
/*
    酒店类
 */
public class Hotel {
    //成员变量
    //房间 - 二维数组, 有5层,每层5个房间 - null
    Room[][] rooms = new Room[5][5];

    //
    Hotel(){
        //i表示 有多少层
        for (int i = 0; i < rooms.length; i++) {
            //j 表示 i 层中有多少个房间
            // 1001 ->
            for (int j = 0; j < rooms[i].length; j++) {
                //房间号
                int roomNum = (i + 1) * 1000 + j + 1;
                rooms[i][j] = new Room(roomNum);
                //System.out.print(rooms[i][j].num);
            }
        }
    }

    //成员方法
    //入住 - in
    void in(int roomNum, String name){
        //得到 i层
        int i = roomNum / 1000 - 1;
        //得到 j层
        int j = roomNum % 1000 - 1;
        if(rooms[i][j].guest == null){
            // 2002
            rooms[i][j].guest = new Guest(name);
            System.out.println(name + "入住" + roomNum);
        }else{
            System.out.println("此房间已住人");
        }

    }

    //退房
    void out(int roomNum){
        int i = roomNum / 1000 -1;
        int j = roomNum % 1000 -1;
        if(rooms[i][j].guest != null){
            rooms[i][j].guest = null;
        }else{
            System.out.println("此房间已空");
        }
    }
    //查房  \t -> tab键盘
    void show(){
        //查看 有i层
        for (int i = 0; i < rooms.length; i++) {
            //查看 第 i层 的第j个房间减
            for (int j = 0; j < rooms[i].length; j++) {
                System.out.print(rooms[i][j].num + "\t");
            }
            System.out.println();
            for (int j = 0; j < rooms[i].length; j++) {
                if(rooms[i][j].guest != null){
                    System.out.print(rooms[i][j].guest.name + "\t");
                }else{
                    System.out.print(rooms[i][j].guest + "\t");
                }
            }
            System.out.println();
        }
    }
}
package day02.hotel;


import java.util.Scanner;

/*
    普通类 - 放主方法
 */
public class Main {
    public static void main(String[] args) {
        //创建酒店类的对象
        Hotel hotel = new Hotel();
        Scanner console = new Scanner(System.in);
        /*hotel.in(2002,"张三");
        hotel.out(2002);
        hotel.in(2002,"sili");
        hotel.show();*/

        while (true) {
            //获取需要的指令
            System.out.println("请输入指令:show查看,in入住,out退房,exit退出程序");
            String command = console.next();

            switch (command) {
                case "in":
                    System.out.println("请输入房间号:");
                    int roomNum = console.nextInt();
                    System.out.println("请输入入住的客户名:");
                    String name = console.next();
                    hotel.in(roomNum, name);
                    hotel.show();
                    break;
                case "out":
                    System.out.println("请输入要退房的房间号:");
                    int roomNum1 = console.nextInt();
                    hotel.out(roomNum1);
                    break;
                case "show":
                    hotel.show();
                    break;
                case "exit":
                    System.exit(0);//强制退出程序
                    //break loop;
                   // return;
                default:
                    System.out.println("输入指令有误,请重新输入");
            }

        }

    }
}

退出双重for循环

java跳出循环是使用break语句的,break默认跳出当前循环(包括for循环、while循环),当使用双层循环时,可通过label从内层循环跳出。
有关对比的代码示例如下:
跳出一层:
for(int i=0;i<10;i++){
for(int a=0;a<10;a++){
break;//跳出a循环,回到i循环
}
}
跳出两层:
labe:for(int i=0;i<10;i++){
for(int a=0;a<10;a++){
break labe;//跳出整个循环
}
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值