1. Declaración break

Veamos un ejemplo de la lección anterior:

Código Explicación
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
El programa leerá una línea del teclado, hasta que ingreses "exit".

El programa lee líneas desde la consola hasta que exitse ingresa la palabra. Si ingresa esta palabra, la isExit variable se convierte en true, la condición del ciclo será y el ciclo terminará".!isExitfalse

Java tiene una declaración break especial que le permite simplificar dicha lógica. Si una breakinstrucción se ejecuta dentro de un bucle, el bucle finaliza inmediatamente. El programa comenzará a ejecutar la instrucción que sigue al bucle. El comunicado es muy breve:

break;

Así es como puede usar la declaración break para reescribir el ejemplo que acabamos de discutir:

Código Explicación
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
El programa leerá una línea del teclado, hasta que ingreses "exit".


2. continuar declaración

Pero break no es la única declaración de Java que le permite controlar el comportamiento de un bucle. Java también tiene la declaración continue. Si ejecuta una declaración continue dentro de un bucle, la iteración actual del bucle terminará antes de lo previsto.

Ejecutar el cuerpo del bucle una vez se denomina iteración del bucle. La declaración continue interrumpe la iteración actual del ciclo, pero a diferencia de la declaración break, no finaliza el ciclo en sí. La declaración también es breve:

continue;

La declaración continue es muy conveniente en un bucle si queremos 'saltar' la ejecución del cuerpo del bucle en ciertas situaciones.

Tarea: Queremos escribir un programa que imprima números de 1a 20pero salte los números que son divisibles por 7. Así es como se vería este código.

Código Explicación
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
El programa muestra números desde 1hasta 20. Si el número es divisible por 7(el resto de la división por 7es 0), omitiremos mostrar el número.

En realidad, este código no funcionará , porque iestará para siempre atascado en el número 7. Después de todo, la declaración continue salta otras dos declaraciones: System.out.println(i)y i++. Como resultado, una vez que alcancemos el valor 7, la variable idejará de cambiar y estaremos en un bucle infinito.

Escribimos el código de esta manera a propósito para ilustrar este error muy común. ¿Cómo lo arreglamos?

Aquí hay dos opciones:

Opción 1: cambiar iantes de ejecutar continue, pero despuési % 7

Opción 2: incrementar siempre ial principio del ciclo. Pero entonces iel valor inicial debe ser 0.

Opción 1 opcion 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}