我们想要一个循环来达到某个索引或无限运行。
所以我们有一个属性loopCount,它可以大于0OR -1。
我们希望有一个具有 2 个停止条件的循环:
1. 到达loopCount。
2. 无尽 - loopCount == -1。
所以这是代码:
for (int i = 0; (loopCount == -1 || i < loopCount) ; i++) {
doSomething();
}
这不优雅的是以防万一
循环计数 == -1
我继续成长,可能会达到 INT_MAX。
有什么更优雅的方法吗?
最佳答案
为什么不利用 ||
的事实短路?
使用
for (int i = 0; loopCount == -1 || i++ < loopCount; /*intentionally blank*/) {
这边,i
仅在如果 loopCount
时递增是不是 -1,并且我已经非常小心地使用 i++
而不是++i
.
我还删除了不必要的括号。
关于Java:带有额外停止条件的优雅 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35846620/