黑马程序员技术交流社区
标题:
求指导一个小问题
[打印本页]
作者:
陈世涛
时间:
2012-7-16 19:32
标题:
求指导一个小问题
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 和别的东西就不行了。
求高手指导下。
作者:
张_涛
时间:
2012-7-16 19:58
注意readLine()这个方法,你判断的时候,游标是不是也会跟着移动呢?
当你不等于1的时候,再readline(),还能读到你的数据么?
因此,是不是先定义一个变量保存readLine()的返回值,然后再判断。
这种错误比较常见,以后注意点,像Iterator也会有类似的场景。
作者:
鲍霄霄
时间:
2012-7-16 22:36
我不是太清楚你为什么要那么写,但我觉得你这样写会更好点:
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);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2