Laughing girl2021 2021-07-01 17:15 采纳率: 100%
浏览 52
已采纳

java语法错误,请大能帮我看看,每次执行删除方法后,都不能返回主界面,而是报错

每次执行删除方法后,都不能返回主界面,而是报错

//具体业务方法

package com.unit7.service;

import java.util.ArrayList; import java.util.Scanner;

import com.unit7.Emp.Emp;

public class Service {

private ArrayList<Emp> aa=null;       //定义集合构造参数

public Service() {                    //定义集合构造参数
    aa=new ArrayList<Emp>();
}

public void addEmp(Emp emp) {                      //增加方法    
    
    aa.add(emp);
    System.out.println("添加成功!");
    System.out.println(aa.size());                
    System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
    for(int i=0;i<aa.size();i++) {
        Emp emp1=(Emp)aa.get(i);
        System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
    }
    
}

Scanner s=new Scanner(System.in);
public void findEmp(String num2) {                //通过编号查询方法
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(num2)) {
                System.out.println("该食品的信息为:");
                System.out.println("食品编号为:"+num2);
                System.out.println("食品名字为:"+emp.getName());
                System.out.println("食品价格为:"+emp.getMoney());                    
                break;
            }
        }
    }
    
}

public void setEmp(String num3) {                //通过编号修改食品信息
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(num3)) {
                System.out.println("该食品的信息为:");
                System.out.println("食品编号为:"+num3);
                System.out.println("食品名字为:"+emp.getName());
                System.out.println("食品价格为:"+emp.getMoney());                    
                System.out.println("请输入要修改的食品编号:");
                String num4=s.next();
                emp.setNum(num4);
                System.out.println("修改后的食品编号为:"+emp.getNum());
                System.out.println("请输入要修改的食品名字:");
                String name4=s.next();
                emp.setName(name4);
                System.out.println("修改后的食品编号为:"+emp.getName());
                System.out.println("请输入要修改的食品价格:");
                Double money4=s.nextDouble();
                emp.setMoney(money4);
                System.out.println("修改后的食品价格为:"+emp.getMoney());                    
                System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
                for(int i1=0;i<aa.size();i1++) {
                    Emp emp1=(Emp)aa.get(i1);
                    System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
                    
                }break;                                    
            }
            
        }
    }
}

public void delEmp(String delNum) {                         //删除方法
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(delNum)) {
                aa.remove(i);
                System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
                for(int i1=0;i<aa.size();i1++) {
                    Emp emp1=(Emp)aa.get(i1);
                    System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
                }
                break;
            }
        }
    }
}

}

//简单的食品库存管理系统

package com.unit7.test;

import java.util.Scanner;

import com.unit7.Emp.Emp; import com.unit7.service.Service;

public class Test {

public static void main(String[] args)throws Exception {
    
    Service shipin=new Service();
    System.out.println("----------欢迎来到食品库存管理系统----------");            
            
    while(1==1) {            
        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("--------------退出请按0--------------");

        Scanner s=new Scanner(System.in);
        int choose=s.nextInt();            

        if(choose==1) {                                        
            System.out.println("请输入食品编号:");
            String num1=s.next();
            System.out.println("请输入食品名字:");
            String name1=s.next();
            System.out.println("请输入食品价格:");
            Double pice1=s.nextDouble();
            
            Emp emp=new Emp(num1,name1,pice1);
            shipin.addEmp(emp);
            continue;
        }else if(choose==2) {
            System.out.println("请输入查询编号:");
            String num2=s.next();
            shipin.findEmp(num2);
            continue;
        }else if(choose==3) {
            System.out.println("请输入要修改食品的编号:");
            String num3=s.next();
            shipin.setEmp(num3);
            continue;
        }else if(choose==4) {
            System.out.println("请输入要删除的食品的编号:");
            String delNum=s.next();
            shipin.delEmp(delNum);
            continue;
        }else if(choose==0) {
            
            break;
        }else {
            System.out.println("输入错误,请重新输入!");
            continue;
        }
    }
}

}

----------欢迎来到食品库存管理系统---------- ---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 001 请输入食品名字: 002 请输入食品价格: 003 添加成功! 1 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0

---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 002 请输入食品名字: 002 请输入食品价格: 2 添加成功! 2 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0

现在仓库内的食品信息为:002------002------2.0

---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 003 请输入食品名字: 003 请输入食品价格: 3 添加成功! 3 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0

现在仓库内的食品信息为:002------002------2.0

现在仓库内的食品信息为:003------003------3.0

---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 4 请输入要删除的食品的编号: 002 现在仓库内的食品信息为:编号--------名字--------价格 Exception in thread "main" 现在仓库内的食品信息为:001------002------3.0

现在仓库内的食品信息为:003------003------3.0

java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:458) at com.unit7.service.Service.delEmp(Service.java:95) at com.unit7.test.Test.main(Test.java:53)

  • 写回答

7条回答 默认 最新

  • GvG1008 2021-07-01 17:28
    关注

    你删除后循环输出信息里,for(int i1=0;i<aa.size();i1++)里i1写成i了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败