下面是我写的代码其中的查询信息方法:
public void searchStuInfo() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查看的学生的学号:");
Long num = sc.nextLong();
for (Iterator<Student> it = stuList.iterator(); it.hasNext();) {
Student stu = it.next();
if (stu.getStuNo() == num) {
System.out.println(new StringBuilder(num.toString()).append(" ")
.append(stu.getName()).append(" ").append(stu.getAge()).append(" ")
.append(stu.getSex()).append(" ").append(stu.getClassName()).toString());
break;
}else {
System.out.println("不存在该学号!");//这里不能这样写的,怎么改进呢
}
}
}HashSet类型的容器中有3个对象Student1、Student2、Student3、、、
查询条件是学生的学号
我从键盘获取一个数字之后怎么在迭代器里面判断改数字对应的学号在不在容器里面呢?请输入要查看的学生的学号:
1
不存在该学号!
不存在该学号!
1 1 1 1 1这里的“不存在该学号!”怎么去掉啊  searchStuInfo方法该怎么写啊

解决方案 »

  1.   

    public void searchStuInfo() {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要查看的学生的学号:");
    Long num = sc.nextLong();
    for (Iterator<Student> it = stuList.iterator(); it.hasNext();) {
    Student stu = it.next();
    if (stu.getStuNo() == num) {
    System.out.println(new StringBuilder(num.toString()).append(" ")
    .append(stu.getName()).append(" ").append(stu.getAge()).append(" ")
    .append(stu.getSex()).append(" ").append(stu.getClassName()).toString());
    break;
    }else {
    System.out.println("不存在该学号!");
    }
    }
    }
    //我把代码重新贴一下,新手求教!!!!
      

  2.   

    看我下面写的绿色注释就清楚了
    public void searchStuInfo() {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要查看的学生的学号:");
    Long num = sc.nextLong();
    boolean find = false; //添加这行
    for (Iterator<Student> it = stuList.iterator(); it.hasNext();) {
    Student stu = it.next();
    if (stu.getStuNo() == num) {
    System.out.println(new StringBuilder(num.toString())
    .append(" ").append(stu.getName()).append(" ")
    .append(stu.getAge()).append(" ").append(stu.getSex())
    .append(" ").append(stu.getClassName()).toString());
    find=true; //添加这行
    break;

    }
    if (find==false) //这个移到遍历外部
    System.out.println("不存在该学号!");
    }