Ciclos for, while y do while en Kotlin para iterar colecciones

Clase 14 de 35Curso de Kotlin

Resumen

Comprender cómo utilizar los ciclos o bucles en Kotlin es fundamental para procesar eficientemente colecciones extensas o repetir tareas con una condición específica. En Kotlin, podemos trabajar principalmente con tres tipos de ciclos: for, while y do while.

¿Cómo funcionan los ciclos en Kotlin?

Los ciclos automatizan tareas repetitivas, evitando la necesidad de escribir código redundante. Veamos cómo funcionan con ejemplos claros:

¿Qué diferencia hay entre while y do while?

  • While: Ejecuta su bloque mientras una condición específica sea verdadera. Primero evalúa la condición y luego realiza la acción.
  • Do While: Realiza la acción y después verifica la condición. De esta manera, asegura al menos una ejecución del bloque de instrucciones.

Por ejemplo, podrías automatizar el envío de emails con estas sentencias. Con while, definirías una condición inicial, por ejemplo, emails pendientes > 0, y decrementarías dicha variable en cada ejecución para evitar bucles infinitos.

¿Cómo uso el ciclo for para iterar sobre rangos o colecciones?

El ciclo for es ideal para recorrer rangos y colecciones. Por ejemplo:

  • Para recorrer un rango desde 0 hasta 5:
for(i in 0..5){
   println("Valor actual: $i")
}
  • Para recorrer una colección de emails:
val emails = arrayOf("email1@test.com", "email2@test.com")
for(email in emails){
   println("Correo: $email")
}

Es posible también recorrer rangos en orden inverso usando la instrucción downTo:

for(i in 5 downTo 0){
   println("Cuenta regresiva: $i")
}

O recorrer rangos en intervalos específicos con step:

for(i in 0..10 step 2){
   println(i)
}

¿Qué ventajas tiene usar for sobre while?

El ciclo for simplifica iterar sobre colecciones al administrar automáticamente variables internas, como índices o contadores. En cambio, el ciclo while requiere gestionar manualmente incrementos o condiciones adicionales.

Por ejemplo, recorrer una colección con while sería así:

var indice = 0
while(indice < emails.size){
   println(emails[indice])
   indice++
}

Este mismo problema es más sencillo con el ciclo for mostrado anteriormente.

¿Cómo aplicarlo en un ejercicio práctico con Kotlin?

Una tarea común que permite practicar estos ciclos podría ser:

  • Crear una lista de tres emails leyendo desde consola usando un ciclo for.
  • Recorrer esa lista con un ciclo while.
  • Contar cuántos correos contienen el símbolo '@'.

Este ejercicio integra tanto la creación y gestión de listas como la aplicación de condicionales y ciclos, demostrando la utilidad práctica de lo aprendido.