为什么一直显示商品编号输入错误

为什么一直显示商品编号输入错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
 
//购物车类
public class ShoppingCart {
    private Map<String, GoodsInCart> shoppingCart;// 购物车
 
    public ShoppingCart(Map<String, GoodsInCart> shoppingCart) {
        this.setShoppingCart(shoppingCart);
    }
 
    public Map<String, GoodsInCart> getShoppingCart() {
        return shoppingCart;
    }
 
    public void setShoppingCart(Map<String, GoodsInCart> shoppingCart) {
        this.shoppingCart = shoppingCart;
    }
 
    // 添加商品到购物车
    public void addGoodsToCart(GoodsManage gm) {
        Scanner sc = new Scanner(System.in);
        if (gm.getGoodsSet().size() == 0) {
            System.out.println("还没有商品,记得导入商品信息哦!");
        else {
            System.out.println("添加商品到购物车");
            System.out.println("所有商品信息为:");
            gm.importGoods();
            Iterator<Goods> it = gm.getGoodsSet().iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
            System.out.println("请输入要添加的商品编号:");
            String key = sc.next();
            Goods gd = null;
            it = gm.getGoodsSet().iterator();
            while (it.hasNext()) {
                gd = (Goods) it.next();
                if (gd.getGoodsId().equals(key)) {
                    System.out.println("请输入要添加的商品数量:");
                    int value = sc.nextInt();
                    GoodsInCart goodsInCart = new GoodsInCart(new Goods(), value);
                    shoppingCart.put(key, goodsInCart);
                    break;
                else {
                    System.out.println("商品编号输入错误!");
                    break;
                }
            }
            // System.out.println("请输入要添加的商品数量:");
            // int value = sc.nextInt();
            // for (Goods goodsTmpe : gm.getGoodsSet()) {
            // GoodsInCart goodsInCart = new GoodsInCart(new Goods(), value);
            // shoppingCart.put(key, goodsInCart);
            // }
        }
    }
 
    // 修改购物车中的商品数量
    public void updateNumInCart() {
 
    }
 
    // 显示购物车中的所有商品
    public void displayAllInCart() {
        System.out.println("显示购物车中的所有商品信息");
        if (shoppingCart.values().size() == 0) {
            System.out.println("购物车是空的,赶快装满吧!");
        else {
 
            Iterator<GoodsInCart> it = shoppingCart.values().iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
        }
    }
 
    // 结算
    public void settleAccounts() {
 
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
 
//测试类
 
public class TestDemo {
    Scanner sc = new Scanner(System.in);
 
    // 主菜单
    public static void menu() {
        System.out.println("**************************************");
        System.out.println("             **主菜单**");
        System.out.println("          1--商品管理");
        System.out.println("          2--购物车");
        System.out.println("          0--退出");
        System.out.println("**************************************");
        System.out.println("请输入对应的数字进行操作:");
    }
 
    public static void goodsManageMenu() {
        System.out.println("**************************************");
        System.out.println("           **商品 管理**");
        System.out.println("         1--商品信息导入");
        System.out.println("         2--显示所有商品信息");
        System.out.println("         9--返回上一级菜单");
        System.out.println("**************************************");
        System.out.println("请输入对应的数字对商品进行管理:");
    }
 
    public static void shoppingCartMenu() {
        System.out.println("**************************************");
        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("**************************************");
        System.out.println("请输入对应的数字对购物车进行管理");
    }
 
    GoodsManage goodsmanage = new GoodsManage(new HashSet<Goods>());
 
    // 商品信息管理部分的逻辑代码
    public void manage_Menu_Code() {
        boolean q = true;
        int manageNum;
        while (q) {
            manageNum = sc.nextInt();
            switch (manageNum) {
            case 1:
                System.out.println("商品信息导入");
                System.out.println("导入成功!");
                goodsmanage.importGoods();// 商品信息导入
                goodsManageMenu();
                break;
            case 2:
                System.out.println("显示所有商品信息");
                goodsmanage.displayAllGoods();// 调用方法显示所有商品信息
                goodsManageMenu();
                break;
            case 9:
                q = false;// 返回上一级菜单
                break;
            default:
            }
        }
    }
 
    // 购物车管理的逻辑代码
    public void cart_Menu_Code(ShoppingCart shoppingCart) {
        int cartNum;
        boolean v = true;
        while (v) {
            cartNum = sc.nextInt();
            switch (cartNum) {
            case 1:
                shoppingCart.addGoodsToCart(goodsmanage);// 添加商品到购物车
                shoppingCartMenu();
                break;
            case 2:
 
                break;
            case 3:
                shoppingCart.displayAllInCart();// 显示购物车中的所有商品信息
                shoppingCartMenu();
                break;
            case 4:
                break;
            case 9:
                v = false;
                break;
            default:
            }
        }
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        boolean b = true;
        int menuNum;
        TestDemo test = new TestDemo();
        ShoppingCart shoppingCart = new ShoppingCart(new HashMap<String, GoodsInCart>());
        while (b) {
            menu();// 调用猪菜单
            menuNum = sc.nextInt();
            switch (menuNum) {
            case 1:
                goodsManageMenu();
                test.manage_Menu_Code();
                break;
            case 2:
                shoppingCartMenu();
                test.cart_Menu_Code(shoppingCart);
                break;
            case 0:
                b = false;
                break;
            default:
                System.out.println("该数字没有对应的操作!");
            }
 
        }
    }
}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你的这段代码有问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
while (it.hasNext()) {
                gd = (Goods) it.next();
                if (gd.getGoodsId().equals(key)) {
                    System.out.println("请输入要添加的商品数量:");
                    int value = sc.nextInt();
                    GoodsInCart goodsInCart = new GoodsInCart(new Goods(), value);
                    shoppingCart.put(key, goodsInCart);
                    break;
                else {
                    System.out.println("商品编号输入错误!");
                    break;
                }
            }

每输入一次,就只能判断一个商品库中的商品。

建议使用for (Goods goods1 : gm.getGoodsSet())这句代码对商品库中商品进行遍历,如果goods1与用户输入的一致,就赋值给gd;在for循环外,判断gd是否为空,如果不为空就可以继续添加了。

祝学习愉快~

没有马甲线的安琪拉 2017-10-27 18:43:28

。。。。。代码也不全,也不知道你是做了什么操作才报错。。。。

  • 提问者 qq_左撇子A_0 #1
    就是 我添加商品购物车 输入正确的商品编号也会显示商品编号输入错误
    2017-10-27 18:50:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码