gpt4 book ai didi

java - 在获得所需值后尝试使用break退出for循环 - 总是抛出异常

转载 作者:行者123 更新时间:2023-12-01 08:15:15 24 4
gpt4 key购买 nike

我有一个 for 循环,用于遍历数组列表,一旦找到我需要的对象,我想在该对象的 set 方法中设置先前获得的对象,为“未找到”设置一个标志为 false,然后跳出循环。之后,如果未找到标志仍然为真,我想抛出异常,否则只是到达方法的末尾。

我认为我要么滥用了break,要么滥用了for循环。我不断地抛出异常。

注意,“items”是 LibraryItems 的数组列表。

        for(LibraryItem l : items) {
if(l.equals(item)) {
l.setCheckedOut(patronToRetrieve);
itemNotFound = false;
break;
} else {
itemNotFound = true;
}
}
if (itemNotFound = true) {
throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
} else {

}

最佳答案

我看到的一个问题是:

if (itemNotFound = true) {
throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
}

以上语句的结果始终为 true,因为您在 if 子句中将 true 分配给 itemNotFound

应该是:

if (itemNotFound) {
throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
}

(或)

 if (itemNotFound == true) {
throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
}

== 是相等性检查,= 是赋值。

关于java - 在获得所需值后尝试使用break退出for循环 - 总是抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908581/

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