为什么我没有导入商品信息,程序还可以继续运行?

为什么我没有导入商品信息,程序还可以继续运行?

Map<String,GoodsInCart> shoppingCart1=new HashMap<String,GoodsInCart>();
	Scanner scanner=new Scanner(System.in);
	/**
	 * 通过商品编号找到对应的要购买的商品
	 * @param gm
	 */
	public void addGoodsToCart(GoodsManage gm){//添加商品到购物车
		Set<Goods> set=gm.getGoods();//將所有商品存入集合中
		String str=null;
		//如果未导入商品列表则提示导入
		if(gm.getGoods().size()==0){
			System.out.println("请先导入商品列表!");
		}else{
			gm.displayAllGoods();//已导入则列出商品列表
			for(Goods o:set){
				System.out.println("请输入要购买的商品的编号:");
				str=scanner.next();
				if(o.getGoodsID().equals(str)){
					System.out.println("请输入该购买的数量:");
					int n=scanner.nextInt();
					GoodsInCart gc=new GoodsInCart(o,n);
					shoppingCart1.put(str, gc);
				}else{
					System.out.println("没找到该商品!");
					continue;
				}
			}
		
		}
	}
	
	
	Set<Goods> set=new HashSet<Goods>();
	//商品信息导入方法
	public void importGoods(){
		Goods a=new Goods("S0001","洗衣机",1500.00,"洗衣机可洗衣服");
		Goods b=new Goods("S0002","电脑",12000.00,"电脑可以上网");
		Goods c=new Goods("S0003","空调",4000.00,"开空调很凉快");
		Goods d=new Goods("S0004","冰箱",8000.00,"冰箱可以存储食物");
		set.add(a);
		set.add(b);
		set.add(c);
		set.add(d);
		System.out.println("商品信息导入成功!");
	}
	//显示商品信息方法
	public void displayAllGoods(){
			Iterator<Goods> it=set.iterator();
			while(it.hasNext()){
				System.out.println(it.next());
		}
	}
	
	
	
	package com.imooc.goods;
import java.util.HashSet;

public class Test {

	public static void main(String[] args) {
		//实例化4个商品对象
		Goods a=new Goods("S0001","洗衣机",1500.00,"洗衣机可洗衣服");
		Goods b=new Goods("S0002","电脑",12000.00,"电脑可以上网");
		Goods c=new Goods("S0003","空调",4000.00,"开空调很凉快");
		Goods d=new Goods("S0004","冰箱",8000.00,"冰箱可以存储食物");
		Set<Goods> goods=new HashSet<Goods>();
		goods.add(a);
		goods.add(b);
		goods.add(c);
		goods.add(d);
		GoodsManage gm=new GoodsManage(goods);
		ShoppingCart sc=new ShoppingCart();
		Scanner s=new Scanner(System.in);
		boolean flag=false;
		int n=0;
		while(flag==false){
			System.out.println("***********************************");
			System.out.println("                主菜单                                              ");
			System.out.println("              1-商品管理                                            ");
			System.out.println("              2-购物车                                          ");
			System.out.println("              0-退出                                            ");
			System.out.println("***********************************");
			n=s.nextInt();
			flag=true;
			switch(n){
				case 1:
				while(true){
					System.out.println("***********************************");
					System.out.println("              商品管理                                         ");
					System.out.println("            1-商品信息导入                                 ");
					System.out.println("           	2-显示所有商品信息                     ");
					System.out.println("            9-返回上一级菜单                                     ");
					System.out.println("***********************************");
					n=s.nextInt();
					switch(n){
					case 1:gm.importGoods();
						break;
					case 2:gm.displayAllGoods();
						break;
					}
					if(n==9){
						flag=false;
						break;
					}
				}
				break;
				case 2:while(flag==true){
					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("***********************************");
					n=s.nextInt();
					switch(n){
					case 1:sc.addGoodsToCart(gm);
						break;
					case 2:sc.updateNumInCart();
						break;
					case 3:sc.displayAllInCart();
						break;
					case 4:sc.settleAccount();
						break;
					}
					if(n==9){
						flag=false;
						break;
					}
				}
				break;
				case 0:
					System.out.println("退出!");
					break;
			}
		}
		
	}

}

http://img1.sycdn.imooc.com//climg/5a3b6d180001771604790496.jpg


正在回答 回答被采纳积分+1

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

1回答
好帮手慕珊 2017-12-21 16:46:45

因为你在主方法中创建了商品对象并添加到集合中,然后封装到了GoodsManage的对象gm中了,所以gm中的集合是有数据的,因此gm.getGoods().size()==0的值不为0,会执行添加商品到购物车。所以,主方法开始添加商品的代码去掉。

祝学习愉快!

  • 提问者 高为砚 #1
    但是我把goods.add(a); goods.add(b); goods.add(c); goods.add(d);去掉之后就不能显示所有商品信息了,咋办?
    2017-12-21 17:01:11
  • 提问者 高为砚 #2
    去掉之后导入商品信息不成功。。。咋办啊?
    2017-12-21 17:12:08
  • 好帮手慕珊 回复 提问者 高为砚 #3
    你把改后的代码贴出来看看吧
    2017-12-21 17:37:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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