Возможный дубликат:
Это на (;;) быстрее, чем на while (TRUE)? Если нет, то почему люди его используют?
Мне было интересно, в чем разница между for(;;)
и while(1)
, когда оба выполняют одну и ту же функцию? Будет ли разница в скорости компиляции
Возможный дубликат:
Это на (;;) быстрее, чем на while (TRUE)? Если нет, то почему люди его используют?
Мне было интересно, в чем разница между for(;;)
и while(1)
, когда оба выполняют одну и ту же функцию? Будет ли разница в скорости компиляции
Разница между ними в том, что многие компиляторы будут предупреждать о while(true)
(«постоянное выражение, используемое как выражение цикла»), в то время как ни один из известных мне не предупреждал о for(;;)
.
Однако они должны генерировать один и тот же код.
for(;;)
, поскольку никто не пишет случайно ни while(true)
, ни for(;;)
.
- person Stuart Golodetz; 04.12.2010
Никакой функциональной разницы, дело вкуса.
С for
вы можете сделать это:
#define ever (; ;) // note the two happy faces? ;)
for ever { ... } // endless loop
Что невозможно с while
.
#define forever for(; ;)
, а потом _2 _...
- person flcoder; 18.02.2018
break
не вызывается явно.for(;;)
более читаемым.
- person meagar; 05.12.2010
Нет разницы. Я предпочитаю последнее.
6 из одного, 110 из другого.
Последнее кажется более лаконичным.
Без разницы, если вы не хотите использовать какой-нибудь счетчик позже, как показано ниже.
for (int i =0; i < 100; i++) {
// some code
}
Оба они одинаковы в C ++. Однако ваше сообщение помечено тегами c#
и c++
.
Если вы используете C #, вам нужно использовать while (true) {...}
. Лично я предпочитаю то же самое в C ++: числа используются только при работе с ... ну, числами! При работе с логическими значениями вместо них используются true
и false
.
Оба они определяют одно и то же функциональное поведение и производят один и тот же код IL из C #.
Я олдскульный, но до сих пор занимаюсь следующим:
#define TRUE 1
#define FALSE 0
while (TRUE) { /*--do something, mutley--* }