En este tutorial te mostraremos el uso de la expresión break
en Kotlin, para que termines tus bucles en una situación precisa. También veras el uso de etiquetas con break y varios ejemplos.
break Simple En Kotlin
La expresión break es una expresión de salto que se permite solo al interior de los bucles. Su objetivo es pasar el control al siguiente punto del programa luego del bucle, es decir, finalizar el bucle.
En su forma simple, se especifica la palabra reservada break
, la cual provoca un salto de ruptura en la sentencia de bucle más interna del alcance actual.
Ejemplo: Imprimir la cantidad de caracteres de cada palabra que el usuario ingrese por teclado. Terminar la aplicación si escribe "salir"
.
fun main() {
while (true) {
print("Escribe una palabra:")
val word = readLine()!!
if (word == "salir") break
println("Caracteres:${word.length}")
}
}
El ejemplo muestra un bucle while que se ejecuta infinitamente. Precisamente usamos una sentencia break
simple para terminar con la condición de que sea el string «salir».
Veamos otro ejemplo para un bucle dentro de otro.
Ejemplo: Comprobar que todos los valores de una matriz sean iguales a uno. De lo contrario especificar invalidez en la primera aparición encontrada de la fila.
fun main() {
val matrix = arrayOf(
intArrayOf(1, 1, 1),
intArrayOf(0, 1, 0),
intArrayOf(1, 1, 0),
)
for (row in matrix.indices) {
for (col in matrix[row].indices) {
if (matrix[row][col] == 0) {
println("Matriz inválida en [$col,$row]")
break
}
}
}
}
El ejemplo muestra una matriz con tres posiciones inválidas: [0,1], [0,2] y [2,2]. Al recorrerla con un doble bucle for, se detecta la inconsistencia del primer cero y son impresos solo dos resultados.
Matriz inválida en [0,1]
Matriz inválida en [2,2]
La expresión break
nos permitió terminar el bucle de filas prematuramente, asegurándonos de que nos es necesario perder tiempo en más comprobaciones.
break Etiquetado En Kotlin
Una expresión etiquetada break se define con la sintaxis break@etiqueta
, donde etiqueta
es el identificador de una sentencia de bucle etiquetada.
etiqueta@ for (i in 1..5) {
/*...*/
}
El bucle se etiqueta con el símbolo @
como sufijo al identificador. Al declarar un break
que apunte a la etiqueta, este se evaluará como un salto de ruptura de dicho bucle.
etiqueta@ for (i in 1..5) {
for (j in 1..7) {
if (...) break@etiqueta
}
}
Por ejemplo: Modifiquemos el ejercicio de la matriz en la sección anterior. Ahora, al encontrar el primer cero se terminará la búsqueda.
fun main() {
val matrix = arrayOf(
intArrayOf(1, 1, 1),
intArrayOf(0, 1, 0),
intArrayOf(1, 1, 0),
)
Loop@ for (row in matrix.indices) {
for (col in matrix[row].indices) {
if (matrix[row][col] == 0) {
println("Matriz inválida en [$col,$row]")
break@Loop
}
}
}
}
Hemos puesto en el bucle de las filas la etiqueta Loop@
e introducido el mecanismo de finalización con break@Loop
. Al ejecutar la aplicación, la salida será:
Matriz inválida en [0,1]
¿Qué Sigue?
En este artículo has aprendido sobre la expresión de salto break en Kotlin para romper bucles. Prosigue con la expresión continue para finalizar solo iteraciones.