Java for循环中两个分号的含义是什么?

时间:2011-04-15 12:50:20

标签: java for-loop

我正在查看AtomicInteger类,我遇到了以下方法:

/**
 * Atomically increments by one the current value.
 *
 * @return the previous value
 */
public final int getAndIncrement() {
    for (;;) {
        int current = get();
        int next = current + 1;
        if (compareAndSet(current, next))
            return current;
    }
}

有人可以解释for(;;)的含义吗?

5 个答案:

答案 0 :(得分:55)

相当于while(true)

for循环有三个要素:

  • 初始化
  • 条件(或终止表达)
  • 增量表达式

for(;;)没有设置它们,使它成为无限循环。

参考:The for statement

答案 1 :(得分:9)

相同
while(true) {
    //do something
}

......稍微清楚一点 请注意,如果compareAndSet(current, next)评估为true,则循环将退出。

答案 2 :(得分:3)

这只是无限循环的另一种变体,就像while(true){}一样。

答案 3 :(得分:2)

这是一个永远的循环。它只是一个没有明确条件的循环。

答案 4 :(得分:2)

这是一个无限循环,如while(true)