gpt4 book ai didi

java - 有人能告诉我为什么这个方法会进入无限循环吗?

转载 作者:行者123 更新时间:2023-12-02 08:07:22 25 4
gpt4 key购买 nike

所以,如果 if(printLibraryNumber.equals(borrowersArray[index].getLibraryNumber() 语句为真,这个方法似乎会进入无限循环,我不知道为什么。

public boolean printBorrower(String printLibraryNumber)
{
int index = 0;
boolean isPrinted = false;
while(index < currentIndex)
{
if(printLibraryNumber.equals(borrowersArray[index].getLibraryNumber()))
{
borrowersArray[index].printBorrowerDetails();
isPrinted = true;
}
else
{
index++;
isPrinted = false;
}
}

if(isPrinted == false)
{
System.out.println("Borrower with library number " + printLibraryNumber + " not found.");
}

return isPrinted;
}

最佳答案

自从

if(printLibraryNumber.equals(borrowersArray[index].getLibraryNumber()))

语句始终为trueif代码块将被执行,而else代码块则不会。由于您没有更改 if block 中的 index 变量,因此您会陷入无限循环,因为它是 index 变量决定何时停止

您需要增加任何条件代码块外部index变量:

while(index < currentIndex)
{
if(printLibraryNumber.equals(borrowersArray[index].getLibraryNumber()))
{
borrowersArray[index].printBorrowerDetails();
isPrinted = true;
}
else
{
isPrinted = false;
}

index++; // increment here
}

关于java - 有人能告诉我为什么这个方法会进入无限循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33988694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com