模拟实现用户购买商品的功能,使用数组模拟商品列表,当购买的商品不存在或者商品库存为0时,抛出自定义异常。用户购买某一个商品时,对异常进行处理,并对库存进行改变。

public static Scanner input;
public static Goods[] goods;//创建一个Goods对象数组
static {
    input=new Scanner(System.in);
    goods=new Goods[3];//将对象放在数组,并且初始化值
    goods[0]=new Goods(1,"苹果",20,2.5);
    goods[1]=new Goods(2,"香蕉",12,1.5);
    goods[2]=new Goods(3,"橘子",3,3);
}
private static void showinfo(){
    for (Goods good : goods) {
        System.out.println(good.toString());
    }
}
private static void buy() throws NoGoodsException, NotEnoughException {
    Goods gname=null;//创建一个对象
    System.out.println("请选择要购买的商品名称");
    String name=input.next();
    for(Goods goods1:goods){
        if(goods1==null)break;
        if(goods1.getName().equals(name)){
            gname=goods1;
        }
    }
    //下面语句要放在循环体外面,用另一个判断继续
    if(gname==null) {
        throw new NoGoodsException("商品不存在");
    }
    else System.out.println("商品存在可以买了,您要买几个?");
    int num=input.nextInt();
    if(gname.getStore()<num){
        throw new NotEnoughException("库存不足");
    }else{
        System.out.println("您需要支付"+(gname.getPrice()*num)+"元购买"+(gname.getName()));
    }
    gname.setStore(gname.getStore()-num);
    showinfo();
}

public static void main(String[] args) {
  //模拟实现用户购买商品的功能,
    // 当购买的商品不存在或者商品库存为0时,
    // 抛出自定义异常。用户购买某一个商品时,
    // 对异常进行处理,并对库存进行改变。
    try {
        buy();
    } catch (NoGoodsException e) {
        e.printStackTrace();
    } catch (NotEnoughException e) {
        e.printStackTrace();
    }
}
posted @   Liku007  阅读(106)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示