Подтвердить что ты не робот

Что означают две точки с запятой в Java для цикла?

Я искал класс 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(;;)?

4b9b3361

Ответ 1

Это эквивалентно while(true).

A для цикла имеет три элемента:

  • инициализатор
  • условие (или выражение завершения)
  • выражение приращения

for(;;) не устанавливает ни одного из них, делая его бесконечным циклом.

Ссылка: Инструкция for

Ответ 2

Я оставлю это здесь на всякий случай, если вы визуальный ученик.:)

enter image description here

Ответ 3

Это то же самое, что и

while(true) {
    //do something
}

... чуть менее понятно.
Обратите внимание, что цикл завершится, если compareAndSet(current, next) будет оцениваться как true.

Ответ 4

Это просто еще одна вариация бесконечного цикла, как и while(true){}.

Ответ 5

Это цикл for ever. это всего лишь цикл без каких-либо определенных условий.

Ответ 6

Это бесконечный цикл, например while(true).