2009-03-30 15 views

Respuesta

5

De hecho, es un ciclo infinito.

Debajo del capó, el compilador/jitter optimizará esto para (efectivamente) una operación JMP simple.

también es efectivamente el mismo que:

while (true) 
{ 
} 

(excepto que esto también se ha optimizado de distancia, ya que el verdadero) parte (de una expresión, mientras que por lo general requiere algún tipo de comparación, sin embargo, en este caso, no hay no hay nada que comparar. ¡Simplemente continúe repitiendo!)

1

Al igual que en C y C++ puede omitir cualquiera de los tres, o los tres.

15

Sí, es un ciclo infinito.

Ejemplos:

for (; ;) { } (aka: El cangrejo)

while (true) { }

do { } while (true)

4

Sí, eso es un bucle infinito. Puede omitir cualquiera de las tres expresiones, aunque en mi experiencia suele ser la primera o la 3.

0

Es un ciclo infinito :).

2

No hay valores predeterminados. Nada se inicializa, nada se incrementa y no hay prueba de finalización.

3

Es un ciclo infinito. Efectivamente, es lo mismo que esto:

while (true) 
{ 
} 
2

No hay valores predeterminados para la primera y la tercera parte (de forma predeterminada son nada y funcionaría). El valor predeterminado para la expresión condicional es true que hará que for(;;) sea efectivamente un ciclo infinito. (Si se supone que el valor predeterminado es false, hubiera sido inútil tener tal construcción).

3

for (; ;) { } es un bucle infinito, está en lo cierto.

si desea usarlo, entonces tiene que poner alguna condición en el cuerpo del bucle, para que pueda salir del bucle.

for (; ;) 
{ 
    if (conditionTrue) 
     break; 
    else 
     continue; 
}