Ответ 1

while(true) {}

Кажется, он наиболее эффективно передает смысл цикла.

Ответ 2

for (;;)
{
    /* No warnings are generated about constant value in the loop conditional
       plus it is easy to change when you realize you do need limits */ 
}

Ответ 3

#define forever for(;;)

forever {
    /*stuff*/
}

Ответ 4

ПОЖАЛУЙСТА, ПРИНИМАЙТЕ ОТ (23)

Ответ 5

while(1)
{
//do it 
}

Как я рулон.

Ответ 6

Мне нравится использовать подход for (;;), потому что компилятор MSVС++ жалуется на подход цикла:

void main()
{
  while(1) // test.cpp(5) : warning C4127: conditional expression is constant
  {
  }

  for(;;)
  {
  }
}

Ответ 7

Я предпочитаю while(1) или while(true) - это самый чистый. do { } while(true) кажется ненужной обфускацией. Аналогично, for(;;) может ввести в заблуждение людей, которые никогда не видели его раньше, тогда как while(true) очень интуитивно понятен. И нет никаких оснований делать label: ... goto label;, это просто более запутанно.

Ответ 8

10 some l33t code
20 goto 10

Ответ 9

Бесконечная хвостовая рекурсия;)

Он несколько зависящий от компилятора...

Ответ 10

Я использую for (;;) в языках C-стиля и while true на языках, которые не поддерживают эту конструкцию.

Я изучил метод for (;;) в K & R, и он всегда чувствовал себя как идиоматический C для меня.

Ответ 11

Я обычно использую for(;;) { }, который я всегда считаю "вечным".

Некоторые языки предлагают конструкцию repeat { }, которая будет зависеть от цикла навсегда. Я нахожу конструкцию for(;;) { } визуально наиболее похожей на нее, потому что она настолько отличается от обычной конструкции for(). Это важный атрибут для бесконечного цикла, который while(1) { } действительно не имеет.

Ответ 12

При написании кода для себя я использую for (;;). Другие люди, как правило, путаются по синтаксису, поэтому для кода, который другие люди должны видеть/использовать, я использую while (true).

Ответ 13

offtopic: если вы думаете о том, что вы пытаетесь выразить, вам обычно не понадобится бесконечный цикл.

Ответ 14

for (;;) - это то, что я обычно вижу.

Ответ 15

for(;;);

Текст наполнителя.

Ответ 16

Пусть начнется огонь...

Если цикл является истинным бесконечным циклом (т.е. нет условия прерывания - только внешнее событие может завершить выполнение потока/процесса), тогда я действительно предпочитаю метку и goto. Вот почему:

Во-первых, использование while, for и do ... while означает, что цикл может завершиться. Даже если конечное условие никогда не достижимо, синтаксический смысл этих конструкций заключается в том, что есть некоторое условие завершения.

Во-вторых, использование конструкции цикла вводит дополнительный уровень отступа. Я ненавижу отступы, которые не нужны. Он расточает ценную столбчатую недвижимость.

В-третьих, единственный истинный бесконечный цикл - это тот, который безоговорочно возвращается к началу цикла. Только goto точно соответствует этой цели.

По правде говоря, мне это не очень нравится. Все они выполняют свою работу, и большинство из них в любом случае приведут к тем же инструкциям по сборке. Однако, сборка, которая сгенерирована, по всей вероятности будет безусловным прыжком (если вы оптимизатор стоит того, черт возьми), который напрямую отображает, к какой C-конструкции, дети? Правильно... твой старый друг goto.

Ответ 17

Бесконечные петли - плохая идея, но на практике это не всегда задерживается.

Я предпочитаю while (1) {}, но убедитесь, что что-то внутри цикла может вызвать его прорыв.

Ответ 18

Я обычно использую while() {}, но, узнав, что for(;;) {} не является своего рода сумасшедшим недействительным синтаксисом, я обязательно буду использовать более уникальный вариант.

Выделяет бесконечные циклы из фактических условных выражений.

Ответ 19

Теперь я предпочитаю идиому "for (;;)", потому что она больше "торчит". Раньше я использовал идиому "while (true)", потому что я думал, что она выразила намерение лучше, но я переключился, потому что я думаю, что идиома "for (;;)" достаточно хорошо известна, чтобы адекватно выражать намерение, а также я считаю это лучше будучи более заметными.

Как будто Stroustrup сделал новые ролики на С++ целенаправленно уродливыми - так они торчат.