A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈世涛 中级黑马   /  2012-7-16 19:32  /  1121 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ArrayListTest1 {


public static void main(String[] args) throws IOException {


EmpManage mowz=new EmpManage();
while(true){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("1:添加员工");
System.out.println("2:查询员工");
System.out.println("3:修改工资");
System.out.println("4:删除员工");
System.out.println("5:工资排序");
System.out.println("6:退出系统");

if(br.readLine().equals("1"))
{
System.out.println("请输入工号");
String id=br.readLine();
System.out.println("请输入姓名");
String name=br.readLine();
System.out.println("请输入工资");
int sal=Integer.parseInt(br.readLine());
Emp emp=new Emp(id,name,sal);
mowz.addEmp(emp);

}
else if(br.readLine().equals("2"))
{
System.out.println("请输入要找的员工的工号");
mowz.showInfo(br.readLine());

}
else if(br.readLine().equals("3"))
{
System.out.println("请输入要修改工资的工号");
String id=br.readLine();
System.out.println("请输入新的工资");
int sal=Integer.parseInt(br.readLine());
mowz.updateSal(id, sal);

}
else if(br.readLine().equals("4"))
{
System.out.println("请输入要删除员工的工号");
String id=br.readLine();
mowz.delEmp(id);

}
else if(br.readLine().equals("5"))
{
System.out.println("排序后的工资:");
mowz.sortSal();

}
else if(br.readLine().equals("6"))
{
System.exit(0);
}
}

}

}

我按提示输入 1 的时候 是行的。
我输入 2 和别的东西就不行了。
求高手指导下。

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
我不是太清楚你为什么要那么写,但我觉得你这样写会更好点:
public class ArrayListTest1 {


public static void main(String[] args) throws IOException {


EmpManage mowz=new EmpManage();
while(true){
Scanner scan=new Scanner(System.in);
System.out.println("1:添加员工");
System.out.println("2:查询员工");
System.out.println("3:修改工资");
System.out.println("4:删除员工");
System.out.println("5:工资排序");
System.out.println("6:退出系统");

int a = scan.nextInt();

switch(a){
        case 1 :
        System.out.println("请输入工号");
            String id = scan.next();
        System.out.println("请输入姓名");
            String name = scan.next();
                System.out.println("请输入工资");
                int sal = scan.nextInt();
                Emp emp=new Emp(id,name,sal);
        mowz.addEmp(emp);
                break;
        case 2 :
                System.out.println("请输入要找的员工的工号");
        mowz.showInfo(scan.next());
                break;
        case 3 :
        System.out.println("请输入要修改工资的工号");
        String id=scan.next();
        System.out.println("请输入新的工资");
        int sal=scan.nextInt();
        mowz.updateSal(id, sal);
                break;
        case 4 :
        System.out.println("请输入要删除员工的工号");
        String id=scan.next();
        mowz.delEmp(id);
                break;
        case 5 :
        System.out.println("排序后的工资:");
        mowz.sortSal();
                break;
        case 6 :
        System.exit(0);
    }
  }
}
回复 使用道具 举报
注意readLine()这个方法,你判断的时候,游标是不是也会跟着移动呢?
当你不等于1的时候,再readline(),还能读到你的数据么?
因此,是不是先定义一个变量保存readLine()的返回值,然后再判断。
这种错误比较常见,以后注意点,像Iterator也会有类似的场景。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马