java 循环返回值_关于Java:Java – 返回值是否会打破循环?

我正在编写一些基本遵循以下格式的代码:

public static boolean isIncluded(E element) {

Node c = head;

while (c != null) {

if (cursor.getElement().equals(element)) {

return true;

}

c = c.getNext();

}

return false;

}

代码将搜索节点列表中的元素。 但是,我的问题是,如果while循环确实找到了if语句说它应该返回true的元素,它是否会返回true并打破循环? 此外,如果它确实然后中断循环,它将继续通过该方法仍然返回false,或者一旦返回值,方法是否完成?

谢谢

为什么不使用调试器来逐步完成代码并自行查找?

回答:是的.....

其中一个明显容易被测试的答案(返回false之前的print语句?)我总是想知道谁在正确的思想中认为询问SO并等待答案比运行代码更好。

@Voo但我很高兴有人这样做,因为在SO上找到它比自己测试更快。

是*

是的,通常(在您的情况下)它会突破循环并从方法返回。

一个例外

一个例外是如果循环中有一个finally块并且包含return语句,那么finally方法块中的代码将在方法返回之前执行。 finally块可能不会终止 - 例如,它可能包含另一个循环或调用永不返回的方法。在这种情况下,您永远不会退出循环或方法。

while (true)

{

try

{

return;  // This return technically speaking doesn't exit the loop.

}

finally

{

while (true) {}  // Instead it gets stuck here.

}

}

即使try块内没有返回,你的逻辑也会被最终打动

Return确实会中断循环并立即从整个方法返回。在出路上执行的唯一代码是finally子句的主体和任何synchronized语句的释放。

我还要补充一点,如果你想打破循环的当前迭代,并立即启动下一个迭代,你可以使用:

continue;

因为似乎没有人建议它。

nicee不知道那一个!+1

是。

无论如何,对于这么短的问题,我认为你会更好(并得到一个更早的答案)只是自己尝试。

+1 - 阿门。 亲自尝试一下。

@duffymo但是一旦它在SO上,它有两个优点:1)查找其他人的速度更快,2)它可以说明边缘情况和进一步的话语。

@JoshPinter它也是QA的一个很好的候选人,你自己提供答案。

@ cst1992过去的一天我正在做这件事,但是最近我开始对此表示赞成,因为人们说"好了,现在问题解决了吗?" 所以...

每次调用时返回从任何地方退出方法并返回一个值给调用者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值