使用方法时,为arraylist设置If语句



我正在工作的任务创建一个菜单,该菜单将根据分配给它的数字搜索数组列表中的项目或删除项目。我最初使用的for循环是这样的:

                  for (Student S : list) 
                  { 
                  if (S.getsNumber() == findStudent) 
                  JOptionPane.showMessageDialog(null, S.toString()); 
                  }

,但我需要它返回一个字符串,如"学生不存在",当没有一个学生匹配输入的数字。我得到的问题是,它会为列表中的每个项目一遍又一遍地打印该语句。所以我试图创建一个if语句,而不是for循环。

我只是不能找出它的代码,因为每个学生的数字不在数组列表中,它是通过一个方法给出的。所以如果我使用类似list.contains()的东西,它将是false。

有人能给我指个正确的方向吗?

顺便说一句,我绝对没有要求任何人为我写代码!只是需要一点帮助。

如果你需要我把目前为止的内容放上去,请告诉我。

一种启发式方法是将Student初始化为某个空值,然后在循环结束后,如果Student仍然为空,则创建并抛出一个StudentNotFoundException实例。

如果不希望打印多次,则不要将打印内容放入循环中。选择您想要打印的内容,退出循环然后打印,或者使用一个布尔值来收紧您的逻辑,防止打印机运行,除非您选择了要打印的内容,然后在打印后将布尔值重置为false。

我不太确定这是否是您所要求的,但这将给您提供一个等效的学生没有发现异常

if语句中设置一个布尔值,然后在for循环后检查:

boolean found = false;
for (Student S : list) 
{ 
   if (S.getsNumber() == findStudent) {
      JOptionPane.showMessageDialog(null, S.toString()); 
      found = true;
   }
}
   if(!found) JOptionPane.showMessageDialog(null, "Student does not exist");

最新更新