En este tutorial aprenderás sobre la sintaxis del bucle for en Kotlin para iterar sobre colecciones de elementos. Luego verás ejemplos recorrer estructuras de datos como rangos, arreglos y strings.
Sintaxis Del Bucle for
El bucle for
en Kotlin se asemeja a las sentencias foreach
de otros lenguajes, donde se provee un iterador (iterator()
) para recorrer los elementos de datos estructurados.
La sentencia se compone de una declaración de variables, una expresión contenedora, compuesta por el operador in
y los datos estructurados (arreglos, listas, etc.), y el cuerpo del bucle.
Ejemplo: Imprimir la cuenta del uno al cinco.
fun main(){
for(i in 1..5){
println("Contando $i")
}
}
Como ves, la variable declarada es i
y la estructura de datos es un rango del 1 al 5. Lo que significa que el cuerpo se ejecutará cinco veces.
El valor de i
es accesible desde el cuerpo, por lo que puedes imprimir su contenido con println()
:
Contando 1
Contando 2
Contando 3
Contando 4
Contando 5
Aunque usamos el cuerpo como un bloque de código, al ser una sola sentencia, puedes omitir las llaves.
for (i in 1..5) println("Contando $i")
A continuación, verás algunos ejemplos de iteraciones sobre colecciones.
Recorrer Un Rango
El siguiente es un ejemplo que recorre el rango de caracteres [‘a’,’f’]. Verás varios bucles for
usando progresiones (por escribir) con el fin de manipular el ritmo y orden de las iteraciones.
fun main() {
// iteración regular
for (char in 'a'..'f') print(char)
// iteración con avance de 2
println()
for (char in 'a'..'f' step 2) print(char)
println()
// iteración en reversa
for (char in 'f' downTo 'a') print(char)
// iteración excluyendo el límite superior
println()
for (char in 'a' until 'f') print(char)
}
La salida del programa será:
abcdef
ace
fedcba
abcde
Recorrer Un Array
Para iterar a lo largo de un arreglo con el bucle for
, debemos usar como base los índices de sus elementos.
Esto significa, que usamos en la declaración de variable el índice y luego expresamos su existencia sobre la propiedad rango entero indices
.
Ejemplo: Crear un arreglo con cinco nombres de campeones e imprimir su índice y valor.
fun main() {
val champions = arrayOf("Teemo", "Ahri", "Vayne", "Brand", "Kindred")
for (i in champions.indices) {
println("[$i, ${champions[i]}]")
}
}
La salida será:
[0, Teemo]
[1, Ahri]
[2, Vayne]
[3, Brand]
[4, Kindred]
Adicionalmente, Kotlin te permite reescribir la sentencia for
anterior con el método withIndex()
, el cual retorna en elementos IndexedValue
, que contienen el índice y el valor.
Dichos valores pueden ser recibidos en un declaración de desestructuración de la forma (indice, valor)
. La cual es accesible desde el cuerpo del bucle.
fun main() {
val champions = arrayOf("Teemo", "Ahri", "Vayne", "Brand", "Kindred")
// Desestructuración de elementos de Array
for ((i, v) in champions.withIndex()) {
println("[$i, $v]")
}
}
Recorrer Un String
También es posible iterar sobre un string con el bucle for. La sentencia interpretará la posición y valor de cada carácter.
Ejemplo: Imprimir el string "Develou"
en forma vertical.
fun main(){
for(c in "Develou"){
println(c)
}
}
En la salida de la aplicación tendrás:
D
e
v
e
l
o
u
¿Qué Sigue?
Como ya sabes usar el bucle for
en Kotlin, ahora puedes avanzar a ver ejemplos de uso para el bucle while
.