En este tutorial, aprenderá a usar break para terminar un bucle. Además, también aprenderá sobre etiquetas de rotura.
Suponga que está trabajando con bucles. A veces es deseable terminar el ciclo inmediatamente sin verificar la expresión de prueba.
En tal caso, break
se utiliza. Termina el bucle envolvente más cercano cuando se encuentra (sin verificar la expresión de prueba). Esto es similar a cómo funciona la instrucción break en Java.
¿Cómo funciona el descanso?
Casi siempre se usa con la construcción if… else. Por ejemplo,
for (…) (if (testExpression) (break))
Si testExpression se evalúa como true
, break
se ejecuta, lo que termina el for
ciclo.
Ejemplo: ruptura de Kotlin
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Cuando ejecute el programa, la salida será:
1 2 3 4
Cuando el valor de i es igual a 5, la expresión i == 5
interior if
se evalúa true
y break
se ejecuta. Esto termina el ciclo for.
Ejemplo: Calcule la suma hasta que el usuario ingrese 0
El programa siguiente calcula la suma de los números ingresados por el usuario hasta que el usuario ingresa 0.
Visite Kotlin Basic Input Output para obtener más información sobre cómo recibir información del usuario.
fun main(args: Array) ( var sum = 0 var number: Int while (true) ( print("Enter a number: ") number = readLine()!!.toInt() if (number == 0) break sum += number ) print("sum = $sum") )
Cuando ejecute el programa, la salida será:
Ingrese un número: 4 Ingrese un número: 12 Ingrese un número: 6 Ingrese un número: -9 Ingrese un número: 0 suma = 13
En el programa anterior, la expresión de prueba del while
ciclo es siempre true
.
Aquí, el while
ciclo se ejecuta hasta que el usuario ingresa 0. Cuando el usuario ingresa 0, break
se ejecuta lo que termina el while
ciclo.
Descanso etiquetado Kotlin
Lo que ha aprendido hasta ahora es la forma sin etiquetar de break
, que termina el ciclo circundante más cercano. Hay otra forma que break
se puede usar (formulario etiquetado) para terminar el bucle deseado (puede ser un bucle externo).
¿Cómo funciona la rotura etiquetada?
La etiqueta en Kotlin comienza con un identificador seguido de @
.
Aquí, test @ es una etiqueta marcada en el ciclo externo while. Ahora, al usar break
con una etiqueta ( break@test
en este caso), puede romper el ciclo específico.
He aquí un ejemplo:
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@first ) ) )
Cuando ejecute el programa, la salida será:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Aquí, cuando i == 2
se evalúa la expresión true
, break@first
se ejecuta lo que termina el ciclo marcado con etiqueta first@
.
Aquí hay una pequeña variación del programa anterior.
En el programa siguiente, break termina el bucle marcado con la etiqueta @second.
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@second ) ) )
Cuando ejecute el programa, la salida será:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
Nota: Dado que, break
se usa para terminar el bucle más interno en este programa, no es necesario usar break etiquetado en este caso.
Hay 3 expresiones salto estructurales en Kotlin: break
, continue
y return
. Para conocer continue
y return
expresarse, visite:
- Kotlin continúa
- Función de Kotlin