Se pregunta qué hace una declaración continue
en un bucle do...while(false)
, me burlé de un simple análisis de los casos (pseudo-código):Continuar declaraciones
count = 0;
do {
output(count);
count++;
if (count < 10)
continue;
}while (false);
output('out of loop');
La salida fue, para mi sorpresa:
0
out of loop
un poco confundido, he cambiado el bucle de una do...while
a un for
:
for (count = 0; count == 0; count++) {
output(count);
if (count < 10)
continue;
}
output('out of loop');
Aunque funcionalmente no es lo mismo, el propósito es prácticamente el mismo: hacer una condición solo satisfecha la primera iteración, y en las siguientes continuar (hasta que se alcance cierto valor, puramente para detener posibles bucles infinitos). Puede que no se ejecuten la misma cantidad de veces, pero la funcionalidad aquí no es lo importante.
La salida era el mismo que antes:
0
out of loop
Ahora, puesta en términos de un simple bucle while
:
count = 0;
while (count == 0) {
output(count);
count++;
if (count < 10)
continue;
}
output('out of loop');
Una vez más, la misma salida.
Esto es un poco confuso, ya que siempre he pensado en la declaración continue
como "saltar a la próxima iteración". Entonces, aquí pregunto: ¿Qué hace una declaración continue
en cada uno de estos bucles? ¿Simplemente salta a la condición?
((Por si sirve de algo, he probado lo anterior en JavaScript, pero creo que es independiente del idioma ... JS tuvieron que conseguir por lo menos ese derecho))
@Brad & @Neil: Neil es correcto re: mi goof arriba. Me disparé en el pie. – abcd