繁体   English   中英

用于遍历数组以打印一个语句java

[英]For looping through an array to print one statement java

我的代码将使用一个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");
        }

    }

我会使用一个临时变量。 而且看起来您的方法应该返回患者在阵列中的位置。 在此代码段中-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;
 }

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

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");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM