我们希望循环达到某个索引或无限循环。
因此,我们有一个属性loopCount,它可以大于0或-1。

我们希望有一个包含2个停止条件的循环:
1.到达loopCount。
2.无休止-loopCount == -1。

所以这是代码:

for (int i = 0; (loopCount == -1 || i < loopCount) ; i++) {
   doSomething();
}


不好的是,以防万一
loopCount == -1
我继续成长,并可能达到INT_MAX。

有什么更优雅的想法吗?

最佳答案

为什么不利用||短路这一事实呢?

使用

for (int i = 0; loopCount == -1 || i++ < loopCount; /*intentionally blank*/) {


这样,仅当i不为-1时,loopCount才递增。我已经足够小心使用i++而不是++i了。

我还删除了不必要的括号。

关于java - Java:带有额外停止条件的优雅for循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35846620/

10-11 12:55