关于5-2结算的问题
当我在控制台输出4时,直接跳到异常显示结果"请输入正确选项:",前面的运行全部正常
购物车管理类
/**
* 结算
*/
public void settleAccount() {
Set<Entry<String, GoodsInCart>> set1 = shoppingCart.entrySet();
for (Entry<String, GoodsInCart> s : set1) {
System.out.println("总金额为:"
+ (shoppingCart.get(s).getGoods().getPrice())
* (shoppingCart.get(s).getNum()));
set1.clear();//清空购物车
}
}
********************************************************************
package com.imooc.goods;
import java.util.Scanner;
import java.util.Set;
public class TestDemo {
public static void main(String[] args) {
Goods one = new Goods("goods001", "水杯", 56, "不锈钢水杯");
Goods two = new Goods("goods002", "饮水机", 299, "带净化功能的饮水机");
Goods three = new Goods("goods003", "笔记本电脑", 4999, "15寸笔记本");
Goods four = new Goods("goods0014", "手机", 230, "android手机");
int m;
Scanner sc = new Scanner(System.in);
primary(); // 主菜单显示
GoodsManage goodsManage = new GoodsManage();
ShoppingCart shoppingCart = new ShoppingCart();
while (true) {
try {
m = sc.nextInt(); // 主菜单选择
switch (m) {
// 商品管理
case 1:
goodsManage();
// 商品管理选择
boolean b = true;
while (b) {
try {
int n = sc.nextInt(); // 副菜单选择
switch (n) {
// 商品信息导入
case 1:
System.out.println("商品信息导入中......");
goodsManage.importGoods();
System.out.println("信息导入成功!");
goodsManage();
break;
// 显示所有商品信息
case 2:
System.out.println("显示所有商品信息");
System.out.println("所有商品信息为:");
goodsManage.displayAllGoods();
goodsManage();
break;
// 返回上一级菜单
case 9:
primary(); // 主菜单显示
b = false;
// m=sc.nextInt();
break;
default:
System.out.println("没有该选项,请重新选择!");
break;
}
} catch (Exception e) {
System.out.println("请输入正确选项:");
sc.next();
}
}
break;
// 购物车管理
case 2:
cartManage();
b = true;
while (b) {
try {
int n = sc.nextInt(); // 副菜单选择
switch (n) {
// 添加商品到购物车
case 1:
System.out.println("添加商品到购物车");
goodsManage.displayAllGoods(); // 显示所有商品信息
shoppingCart.addGoodsToCart(goodsManage);
cartManage(); // 返回购物车管理界面
break;
// 修改购物车中的商品数量
case 2:
System.out.println("修改购物车中的商品数量");
shoppingCart.updateNumInCart();
cartManage(); // 返回购物车管理界面
break;
// 显示购物车中的所有商品信息
case 3:
System.out.println("购物车中的所有商品信息为:");
shoppingCart.displayAllInCart();
cartManage(); // 返回购物车管理界面
break;
// 结算
case 4:
System.out.println("结算:");
shoppingCart.settleAccount();
cartManage(); // 返回购物车管理界面
break;
// 返回上一级菜单
case 9:
primary(); // 主菜单显示
b = false;
// m=sc.nextInt();
break;
default:
System.out.println("没有该选项,请重新选择!");
break;
}
} catch (Exception e) {
System.out.println("请输入正确选项:");
sc.next();
}
}
break;
case 0:
System.exit(0);
default:
System.out.println("没有该选项,请重新选择!");
break;
}
} catch (Exception e) {
System.out.println("请输入正确选项:");
sc.next();
}
}
}
// 主菜单显示
public static void primary() {
System.out.println("************************************************\n");
System.out.println(" **主菜单**");
System.out.println(" 1--商品管理");
System.out.println(" 2--购物车");
System.out.println(" 0--退出");
System.out.println("************************************************\n");
}
// 商品管理
public static void goodsManage() {
System.out.println("************************************************\n");
System.out.println(" **商品管理**");
System.out.println(" 1--商品信息导入");
System.out.println(" 2--显示所有商品信息");
System.out.println(" 9--返回上一级菜单");
System.out.println("************************************************\n");
}
// 购物车管理
public static void cartManage() {
System.out.println("************************************************\n");
System.out.println(" **购物车管理**");
System.out.println(" 1--添加商品到购物车");
System.out.println(" 2--修改购物车中的商品数量");
System.out.println(" 3--显示购物车中的所有商品信息");
System.out.println(" 4--结算");
System.out.println(" 9--返回上一级菜单");
System.out.println("************************************************\n");
}
}
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星