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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?