0

我的一段代码将获取一个 Patient 对象,并遍历一个存储 Patient 对象的数组,如果匹配,它将在 if 语句上打印出消息,这一切都很好。但是如果病人不在那里,我相信每次病人不在等候名单数组中时,else 段都会打印出来。我想要完成的是如果“你的病人不在等待名单上”打印一次,如果它不在数组中?知道怎么做吗?我试图想办法做到这一点,但我相信有一个简单的解决方案,我的大脑无法弄清楚。

public int findWaitingPosition (Patient patient)
{
    for (int i=0 ; i <= waitingList.length-1 ; i++)
    {
        if (waitingList[i].equals(patient))
        {
            System.out.println ("The patient is on waiting list: " + i+1);
        }
        else
        {
            System.out.println ("Your patient is not on the waiting list");
        }

    }
4

2 回答 2

2

我会使用一个临时变量。此外,您的方法似乎应该返回患者在数组中的位置。在此代码段中,-1 表示未找到。

public int findWaitingPosition (Patient patient)
{
    int position = -1;
    for (int i=0 ; i <= waitingList.length-1 ; i++)
    {
        if (waitingList[i].equals(patient))
        {
            position = i;
            break;
        }
    }
    if (position >= 0)
        System.out.println ("The patient is on waiting list: " + i+1);
    else
        System.out.println ("Your patient is not on the waiting list");

    return position;
 }
于 2012-11-23T00:22:14.633 回答
1

您可以按如下方式更改循环:

boolean patientNotInList = true;
for (int i=0 ; i <= waitingList.length-1 ; i++)
{
    if (waitingList[i].equals(patient))
    {
        System.out.println ("The patient is on waiting list: " + i+1);
        patientNotInList = false;
        break; //you might want to break the loop once the object is found
    }
}
if(patientNotInList) {
    System.out.println ("Your patient is not on the waiting list");
}
于 2012-11-23T00:18:01.977 回答