Я согласен с другими ответами, что в этом случае нет необходимости в бесконечном цикле.
Однако другой момент может заключаться в том, что, когда у вас do есть бесконечный цикл, for(;;)
может быть лучшим способом выразить это. Некоторые компиляторы генерируют предупреждения для while(true)
(условие всегда оценивается как ложное), и ваше намерение менее ясно, поскольку оно похоже на любой другой цикл. Возможно, раньше говорилось while (x == true)
, и вы случайно удалили x
вместо true
. for(;;)
довольно ясно говорит, что это должен быть бесконечный цикл. Или, возможно, вы намеревались написать что-то вроде while(t)
, но Intellisense в вашей IDE включился и решил автозаполнить до true
.
for(;;)
с другой стороны, это не то, что вы бы случайно набрали. (и его проще искать. while (true) также можно записать как while (1))
Ни одна из версий не является неправильной , но for(;;)
может быть более интуитивно понятным, поскольку в есть нет условий цикла.