二维数组实现点菜

private static void demo4() {
    String[][] menu = {
            {"糖醋带鱼", "12", "加辣", "加葱"},
            {"麻婆豆腐", "15", "加辣"},
            {"南昌拌粉", "13", "加葱"},
            {"农家小炒肉", "17"},
            {"梅菜扣肉", "23", "加辣", "加葱"},
    };
    boolean flag = true;String[][] desert=new String[0][];
    while (flag) {
        System.out.println("欢迎使用**点餐系统");
        System.out.println("1、显示菜单");
        System.out.println("2、点餐");
        System.out.println("3、显示购物车");
        System.out.println("4、结账");
        System.out.println("0、退出系统");
        int choice = InputUtil.intRegex("请选择:", "[0-4]{1}");
        String inputDesert;
        switch (choice) {
            case 1:
                System.out.println("-->显示菜单");
                for (String[] strings : menu) {
                    System.out.println(Arrays.toString(strings));
                }
                break;
            case 2:
                System.out.println("-->点餐");
                String answer="y";int index=0;
                while ("y".equals(answer)) {
                    System.out.println("请输入你想点的菜品名称:");
                    inputDesert = input.next();
                    int have=isHave(inputDesert,menu);
                    if (have==-1){
                        System.out.println("不好意思,没有这道菜,请重新输入");
                    }
                    else {
                        desert=Arrays.copyOf(desert,desert.length+1);
                        desert[index++]=menu[have];
                        System.out.println("请问是否继续点菜?(y/n)");
                        answer=input.next();
                    }
                }
                break;
            case 3:
                System.out.println("-->显示购物车");
                System.out.println("您点的菜为:");
                for (String[] strings : desert) {
                    System.out.println(Arrays.toString(strings));
                }
                break;
            case 4:
                System.out.println("-->结账");
                int fee=0;
                for (String[] strings : desert) {
                    fee+=Integer.valueOf(strings[1]);
                }
                System.out.println("您需要支付的总费用为:"+fee);
                break;
            case 0:
                System.out.println("谢谢使用,系统已退出");
                flag = false;
                break;
        }
    }
}
 private static int isHave(String name,String[][] ags) {
        int index=0;
        for (String[] ag : ags) {
            for (String s : ag) {
                if(s.equals(name))return index;
            }
            index++;
        }
        return -1;
    }

posted @   Liku007  阅读(19)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示