CodeGym /Cursos /Sintaxis Java Cero /Interrupción de bucle

Interrupción de bucle

Sintaxis Java Cero
Nivel 4 , Lección 4
Disponible

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);
}

Comentarios (11)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Georgina Nivel 51, Hermosillo, Mexico
17 noviembre 2024
Yo creo que es mas correcto: "El programa debe mostrar la suma de los números del 1 al 100 excepto los que son múltiplos de 3."
Georgina Nivel 51, Hermosillo, Mexico
17 noviembre 2024
En la tarea 1 debo leer datos del teclado, pero no especifica si son números o textos, nextLine o nextInt
Anonymous #11577652 Nivel 4, Spain
19 noviembre 2024
Holaa, estamos tratando con Strings, ya que nos está haciendo comprar la palabra "basta" con la introducida por el ususario, por lo que usaremos nextLine();
Javier Rodriguez Nivel 48, Bogota, Colombia
31 agosto 2024
Mostrar la suma total de los números del 1 al 100, sin incluir los multiplos de 3.
Gerson Yarleque Sarapura Nivel 9, Lima, Peru
29 agosto 2024
El ultimo ejercicio lo que quiere es la suma de los numeros del 1 al 100(inclusive),que no sean multiplos de 3. En conclusion excluye a los que sean multiplo de 3.
S__Thiago Nivel 6, Alicante, Spain
28 agosto 2024
Buenas, La suma de los múltiplos de los tres es muy interesante. El matiz que la hace confusa es el "inclusive", si lo redactaran entre paréntesis se solucionaría el problema de redacción. Un saludo.
Anonymous #11544602 Nivel 23, Mariquita, Colombia
24 julio 2024
Buenas. La redacción esta un poco confusa del ejercicio. Muestra la suma de los números desde el 1 hasta el 100 inclusive que no son múltiplos de 3. Utiliza un while ciclo para hacer esto. Ya realice el ejercicio y hay que excluir en la suma los números que sean múltiplos de 3 y hay que tener en cuenta que la suma debe estar entre el numero 1 hasta el 100.
24 mayo 2024
mmmmm "No lo se Rick". Si pienso que el ejercicio esta mal redactado, un poco confuso 😅, SIN EMBARGO, cosas así pasan en cualquier ambiente laboral, en donde se levanta el requerimiento y por una redacción confusa se puede terminar haciendo otra cosa que no era.
6 mayo 2024
El ejercicio esta mal redactado en español, -dice:"Muestra la suma de los números desde el 1 hasta el 100 INCLUSIVE que no son múltiplos de 3" cuando lo que se busca es que EXCLUYA aquellos numeros que no son multiplos de 3.
Adrianet Ramos Velazco Nivel 6, Havana, Cuba
13 mayo 2024
No, lo que quiere decir es que el número 100 también se incluye en la suma.
Dcorreaz Nivel 4, Seattle, Chile
21 mayo 2024
Muestra la suma de los números desde el 1 hasta el 100 inclusive(incluido). Que no son múltiplos de 3. Utiliza un while ciclo para hacer esto.