java - while 和 for 循环在计算上有什么区别吗?

标签 java loops big-o

只是想知道之间是否存在任何计算差异:

for(;condition;) {
    //task
}

while(condition) {
    //task
}

最佳答案

这两种情况没有区别 Java 编译器生成相同的字节码。如果您查看我使用 for 循环 时的字节码:

  0: bipush        11
  2: istore_1
  3: goto          9
  6: iinc          1, -1
  9: iload_1
 10: bipush        10
 12: if_icmpgt     6
 15: return

上面的字节码是为下面的代码生成的:

    int a = 11;
    for (; a > 10;) {
        a--;
    }

同样的字节码:

   Code:
      0: bipush        11
      2: istore_1
      3: goto          9
      6: iinc          1, -1
      9: iload_1
     10: bipush        10
     12: if_icmpgt     6
     15: return

在我使用while循环时由编译器生成

    int a = 11;
    while (a > 10) {
        a--;
    }

关于java - while 和 for 循环在计算上有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55115947/

相关文章:

c - 为什么这个程序编译成功但运行失败?

python - 3 Quicksorts 函数 - 为什么 lambda 版本更慢?提供代码

Jquery:如何跳过第一个元素时间

java - 设置 DAY_OF_WEEK 返回意外结果

java - 使用 SimpleCursorAdapter + Sqlite 似乎不适用于 ListActivity

java - 循环更改图像 - Android

loops - 为什么Lua没有 "continue"语句?

time-complexity - 为什么像 i=i*2 这样的代码在循环中被认为是 O(logN)?

javascript - 在 Javascript 中计算斐波那契数列的最有效方法

c# - C#、Java 和 Objective C 的跨平台校验和