本文已参加「新人创造礼」活动,一同敞开创造之路。
1.情形展现

执行结果如下:

也就是说,关键字”return”,在这儿执行的效果相当于一般for循环里的关键词continue”。
2.原因分析
咱们知道,在一般for循环里面,想要提前完毕(停止)循环体运用”break
“;
完毕本轮循环,进行下一轮循环运用”continue
“;
另外,在一般for里,假如运用”return
“,不仅强制完毕for循环体,还会提前完毕包含这个循环体的整个办法。
而在Java8中的forEach()
中,”break
“或”continue
“是不被答应运用的,而return的意思也不是原来return代表的意义了。
咱们来看看源码:

forEach()
,说到底是一个办法,而不是循环体,完毕一个办法的执行用什么?当然是return啦;
java8的forEach()
和JavaScript的forEach()
用法是何其的类似,感兴趣的能够去了解下(在文末)。
Java不是万能的,不要再吐槽它废物了。
3.解决计划
计划一:运用原始的foreach循环

Alt+/
,就会呈现foreach的代码提示。
如上图所示,这种格局的for循环才是真实意义上的foreach循环。
在idea中输入,依照上述操作是不会有任何代码提示的,那怎么才能在idea中,调出来呢?

办法一:break


计划二:抛出反常
咱们知道,要想完毕一个办法的执行,正常的逻辑是:运用return;
可是,在实际运行中,往往有很多不突发状况导致代码提前停止,比方:空指针反常,其实,咱们也能够经过抛出假反常的办法来到达停止forEach()
办法的目的。


这儿,需求注意的一点是:要确保你forEach()
办法体内不能有其它代码可能会抛出的反常与自己手动抛出并捕获的反常一样;
不然,确实实该因反常导致代码停止的时候,因为咱们手动捕获了并且没做任何处理,岂不是搬起石头砸自己的脚吗?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。