"¡Hola, amigo!
"Hola, Ellie".
"Ya has estudiado bucles, y eso es genial".
"¡Estoy de acuerdo! Ahora no sé cómo vivir sin ellos".
"A veces puedes prescindir de ellos... Pero más a menudo los necesitarás. Hoy vamos a hablar sobre la situación en la que necesitas salir de un bucle antes de lo previsto".
"¿Quiere decir, cuando la condición para continuar el ciclo es verdadera, pero aún necesita salir del ciclo?"
"¡Exactamente! A veces suenas como si ya fueras un programador. De todos modos, para salir de un bucle antes de lo previsto, puedes usar la instrucción break . Echa un vistazo al siguiente ejemplo:
Código | Explicación |
---|---|
|
El programa leerá una línea del teclado, hasta que ingreses "exit" . |
"Ya veo. El programa lee líneas de la consola. Si ingresa "exit"
, la isExit
variable se convierte en true
, la condición del ciclo será y el ciclo finalizará".!isExit
false
"Así es. Entonces, Java tiene una break
declaración especial que le permite simplificar dicha lógica. Si una break
declaración se ejecuta dentro de un ciclo, entonces el ciclo termina inmediatamente. El programa comenzará a ejecutar la declaración que sigue al ciclo. La declaración es muy breve :
break;
"Así es como puede usar la break
declaración para reescribir el ejemplo que acabamos de discutir:
Código | Explicación |
---|---|
|
El programa leerá una línea del teclado, hasta que ingreses "exit" . |
"Tal vez lo recordaré. Siento que será útil".
"Pero break
no es la única declaración de Java que le permite controlar el comportamiento de un ciclo. Java también tiene la continue
declaración. Si ejecuta una continue
declaración dentro de un ciclo, la iteración actual del ciclo terminará antes de lo previsto".
"¿Qué quieres decir con iteración?"
"Una iteración de ciclo es una ejecución del cuerpo del ciclo. La continue
declaración interrumpe la iteración actual del ciclo, pero a diferencia de la break
declaración, no finaliza el ciclo en sí. La declaración también es breve:
continue;
"Entonces, ¿la continue
declaración se puede usar en un ciclo si queremos 'omitir' la ejecución de ciertas iteraciones del ciclo?"
"Exactamente. ¿Entiendes la diferencia entre break
y continue
? Si necesitas encontrar un siete entre 20 dígitos que no se repiten, ¿qué tipo de declaración de bucle e interrupción de bucle usarías?
"Hmm... Repasaría todos los números, y si encuentro 7, entonces ejecutaría un break
."
"¿Qué pasa si necesita mostrar números de 1
a 20
excepto números que son divisibles por 7
?"
"Bueno, aquí probablemente necesito continue
, ya que no quiero salir del bucle. Pero todavía no entiendo del todo".
"Déjame mostrarte cómo resolver este problema. Este es el aspecto que podría tener este código".
Código | Explicación |
---|---|
|
El programa muestra números desde 1 hasta 20 . Si el número es divisible por 7 (el resto de la división por 7 es 0 ), omitiremos mostrar el número. |
"¿Por qué me miras con tanta sospecha, Ellie? ¿Hay alguna trampa aquí?"
"¡No te dejes engañar, Amigo! De hecho, este código no funcionará correctamente . Mostrará los primeros 6 dígitos, y luego i
permanecerá atascado para siempre en el número 7
. Después de todo, la continue
declaración salta otras dos declaraciones: System.out.println(i)
y i++
. Como como resultado, una vez que alcancemos el valor 7
, la variable i
dejará de cambiar y estaremos en un ciclo infinito. Escribí el código de esta manera a propósito para ilustrar un error muy común".
"¿Cómo lo arreglamos?"
"Aquí hay dos opciones:"
Opción 1: cambiar i
antes de ejecutar continue
, pero despuési % 7
Opción 2: incrementar siempre i
al principio del ciclo. Pero entonces i
el valor inicial debe ser 0
.
Opción 1 | opcion 2 |
---|---|
|
|
"¡Excelente! Trataré de no cometer este error".
"¡Recordaré tu promesa!"
GO TO FULL VERSION