我的C ++老师曾告诉我,如果我必须使用休息时间来摆脱循环,我对循环条件没有足够的思考。
她(非常好的老师顺便说一下)也没有提到foreach循环是这个规则的一个例外(我一般认为这是真的)或者确实有一种方法可以摆脱foreach循环而不使用休息?
我一般都在问,但对我来说最有趣的是Java或PHP。
编辑: 如果我没有说清楚,我想知道是否有办法摆脱foreach循环而不使用休息。不确定整个骚动是什么,这个问题有什么问题?
答案 0 :(得分:1)
foreach
循环没有任何退出条件,除了隐含的"当没有更多的项目要迭代时,#34;因此不可能提前淘汰它们同时避免break
而不使用某种可怕的黑客(例如抛出异常,修改迭代集合,设置布尔标志dontContinue
并在每次迭代中检查它等)。
对于普通循环,确实总有一种明显的方法可以避免使用break
(使用continue
的{{1}}停止当前迭代,并将早期退出条件置于循环中#39 ; s条件),然而这种方法是否导致代码比使用if
更易读的代码是有争议的。
在某些情况下,你想要提前摆脱循环的原因是因为你完成了任何需要完成的任务,或者找到了所需的项目。在这种情况下,请考虑将特定功能放在单独的方法中,并使用break
代替return
。