【问题标题】:Java For Loop Termination Condition: == vs <= vs >=Java For 循环终止条件:== vs <= vs >=
【发布时间】:2023-03-30 19:50:01
【问题描述】:
for (int i = lowerBound; i == upperBound; i++) {
      //Code goes here  
    }

我希望最后一次运行 for 循环时 i 等于上界。这是正确的语法吗?如果是这样,为什么有人会使用 =? 提前致谢。 :)

【问题讨论】:

  • 不,这行不通。不过,
  • i for(int i=0; i<size; ++i)
  • 你试过代码了吗?这将不起作用,因为循环只会在条件为真时继续。除非upperbound == lowerbound,否则这永远不会发生。
  • @LouisWasserman 实际上只适用于 1 个案例。

标签: java for-loop syntax


【解决方案1】:

for 循环始终可以转换为 while 循环,如下所示:

for(initialization; condition; step) {
   block;
}

initialization;
while (condition) {
   block;
   step;
}

因此,如果您的条件是i == upperBound,则循环将永远不会运行,因为条件一开始并不为真。

【讨论】:

  • 所以for循环只会在条件为真时运行,在发现条件为假时停止执行?
【解决方案2】:
for (int i = lowerBound; i == upperBound; i++) {
      //Code goes here  
    }

for 循环内部的部分在检查 for 循环语句中提到的约束/条件时执行。

例子

for( int i =0; i == 10 ; i++){
    saySomething();
}

仅在 i == 10 即我将是 i=10 时运行,而如果您编写了 i&lt;10i&lt;=10,它将在每次条件为真时运行。

这里是一个简单的例子:link for for 循环。

【讨论】:

  • 我不在乎它是 C 的派生词,它明白了重点。
【解决方案3】:

要运行所有+等于upperBound,您需要使用

如果你倒数,可能会使用 >=,如果你正数,可能会使用

【讨论】:

    【解决方案4】:

    使用: i 在循环内。

    原因是循环正在针对该循环中的所有约束进行测试,并且只有在将这些约束标记为 true 时才会运行。 i 仅在一种情况下等于 upperbound 并且永远不会在 i 也等于 lowerbound 时,所以它不会运行。

    (Eek。第一次在这里回答!我希望这会有所帮助!)

    【讨论】:

    • 由于我正在测试某个范围内的一些数字,我明白为什么我的代码对我没有帮助。
    猜你喜欢
    • 2012-10-02
    • 2014-03-16
    • 2014-10-19
    • 2014-10-28
    • 1970-01-01
    • 2015-10-18
    • 2013-01-26
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多