Objetivos
- 2.2 Escribir código usando todas las formas de ciclos incluyendo etiquetados y no etiquetados, usar break y continue, y establecer los valores tomados por las variables contadores en los ciclos durante y después de la ejecución de cada uno.
A.- For (2.2)
for Es una estructura de control de ciclos utilizada
para iterar normalmente hasta un límite específico:
for (variables del mismo tipo de dato; condición de parada; condición de iteración) {
sentencia o bloque;
};
for (int i = 0; j = 0; c = 0; i < 10; i++, j++, c++) { };
for (int i = 0; i < 10; i++) {
System.out.println(i);
};
System.out.println(i);
for permite que :
for (int i = 0; i < 10; i++;) {
System.out.println("iteracion");
};
imprima los mismos resultados que:
for (int i = 0; i < 10; System.out.println("iteracion")) {
i++;
};
for permite ciclos infinitos :
for (;;) {};
for se puede comportar como while :
int i = 0;
for (; i < 10; )
{
i++;
};
for el siguiente for solo se ejecutará
una sola vez, debido a la sentencia return que causa que todo el método completo termine
su ejecución :
boolean doStuff()
{
for (int x = 0; x < 10; x++) ;
{
System.out.println("Dentro del ciclo");
return true;
};
return true;
}
for interpreta todo punto y coma como sentencia :
for (int i = 0; i < 15; i++) ;
{
System.out.println("Hola");
};
B.- While (2.2)
while Otra estructura de control de ciclos :
while (condición booleana) ;
{ };
while permite ciclo infinito:
while (true) { };
C.- Do / While (2.2)
do / while Otra estructura de control de ciclos,
difiere del while en que el do / while se ejecuta al menos una vez :
do {
} while (condición booleana) ;
while permite ciclo infinito:
while (true) { };
D.- Etiquetas
Etiquetas Control de flujo especial complementarios
a instrucciones usualmente asociadas a ciclos :
caso1:
for (int i = 0; i < 10; i++)
{
while (i < 10)
{
System.out.println("Java");
break caso1;
}
system.out.println("Continua ejecutándose el for");
}
break con etiquetas, interrumpe el flujo
y ejecuta la siguiente sentencia fuera del bloque que tenía arriba la etiqueta.
caso1:
if(true) { }
caso1:
if(true) { }
while(true) { continue caso1;)
break sin etiquetas, interrumpe el flujo
del ciclo mas interno y ejecuta la siguiente sentencia bajo el ciclo mas interno.