0

我有一个任务是创建一个员工的 ArrayList,提供一个菜单来添加、查找和删除员工记录。我成功地设法自己实现了所有功能,但是有一个小问题。当我使用查找或删除选项时,正确找到或删除了正确的记录,但代码遍历元素的数组列表并打印出在找到正确记录之前未找到的员工,这是不必要的,因为它应该只打印找到的记录。我的编码经验有限,我正在从头开始编写自己的代码,请帮助我。 在此处输入图像描述

我已经附上了我的代码和输出!

else if (choice.equals("4")) {
    System.out.println("Enter Name: ");
    String fName = myScanner.nextLine();
    System.out.println("Enter Job Name: ");
    String fJob = myScanner.nextLine();
    for (int i = 0; i < myEList.size(); i++) {
        if (myEList.get(i).getName().equals(fName) && myEList.get(i).getJob().equals(fJob)) {
            System.out.println("Employee found!");
            System.out.println(myEList.get(i).toString());
        } else {
            System.out.print("Employee not found!");
        }
    }
} else if (choice.equals("5")) {
    System.out.println("Enter Name: ");
    String dName = myScanner.nextLine();
    System.out.println("Enter Job Name: ");
    String dJob = myScanner.nextLine();
    for (int i = 0; i < myEList.size(); i++) {
        if (myEList.get(i).getName().equals(dName) && myEList.get(i).getJob().equals(dJob)) {
            System.out.println("Employee record removed succesfully!");
            myEList.remove(i);
        } else {
            System.out.print("Employee not found!");
        }
    }
}

这是输出 输入选项:4 输入名称:arjun 输入工作名称:测试人员 正在搜索... 找不到员工!找不到员工!员工找到了!姓名:arjun 职位名称:测试员周薪:1200.0

4

3 回答 3

0
else 
                    {
                        System.out.print("Employee not found!");
                    }

这必须在 for 循环结束之后。你需要一个找到的标志。如果循环后为假,则打印消息

于 2017-03-11T15:16:01.597 回答
0
  1. 创建一个变量来跟踪是否在循环之前找不到员工

  2. 在 if 语句中,如果找到则将其发送为 false。

  3. 在循环结束时检查它是否为真。然后打印消息“找不到员工”

请参阅下面的示例

boolean notFound = true;
for(int i=0;i<myEList.size();i++)
{
     if(myEList.get(i).getName().equals(fName)&&myEList.get(i).getJob().equals(fJob))
     {
        System.out.println("Employee found!");
        System.out.println(myEList.get(i).toString());
        notFound = false;
        break;
     }
}
if(notFound)
    System.out.print("Employee not found!");
于 2017-03-11T15:17:14.907 回答
-1

删除此代码块

else 
                {
                    System.out.print("Employee not found!");
                }

之后它应该可以正常工作。


编辑

这是题外话,但是当您下次提出问题时,请记住发布输出图像,而不是键入它或发布链接。

并且避免写你的编码经验。直截了当。它只是不必要地增加了问题的大小。:)

于 2017-03-11T15:18:26.487 回答