while y do-while: cuándo usar cada uno
Escriba bucles while y do-while y comprenda sus casos de uso.
while y do-while: cuándo usar cada uno es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.
Dos tipos de bucles while
Kotlin ofrece tanto while (comprobación previa) como do-while (comprobación posterior). La diferencia es que do-while siempre ejecuta el cuerpo al menos una vez.
Bucle while básico
while comprueba la condición antes de cada iteración. Si es falsa inicialmente, el cuerpo nunca se ejecuta.
fun main() {
var count = 0
while (count < 3) {
println("count = $count")
count++
}
}Bucle do-while básico
do-while ejecuta el cuerpo y después comprueba la condición. El cuerpo siempre se ejecuta al menos una vez.
fun main() {
var n = 10
do {
println("n = $n")
n--
} while (n > 7)
}Leer hasta un valor centinela
Los bucles while son ideales cuando no se sabe cuántas iteraciones se necesitan; por ejemplo, para leer hasta encontrar un valor centinela.
fun main() {
val data = listOf(3, 7, 0, 9)
var i = 0
while (i < data.size && data[i] != 0) {
println("got ${data[i]}")
i++
}
println("stopped at index $i")
}Buscar en una lista
Use while para realizar búsquedas con salida anticipada y detenerse en cuanto se cumpla una condición.
fun main() {
val nums = listOf(2, 4, 7, 8, 10)
var i = 0
while (i < nums.size && nums[i] % 2 == 0) i++
println("first odd at index $i = ${nums[i]}") // 2 = 7
}do-while para validar entradas
Use do-while cuando deba realizar una acción (solicitar, leer o intentar algo) antes de poder comprobar si se ha completado correctamente.
fun main() {
val validInputs = listOf("y", "n", "y")
var idx = 0
var input: String
do {
input = validInputs[idx++]
println("user typed: $input")
} while (input != "n" && idx < validInputs.size)
}Contador con decremento
Los bucles while gestionan de forma clara los contadores que disminuyen hasta cero.
fun main() {
var lives = 3
while (lives > 0) {
println("Lives left: $lives")
lives--
}
println("Game over")
}Bucle infinito con break
Use while (true) con break para código con un estilo de bucle de eventos cuya condición de salida sea compleja.
fun main() {
val items = listOf(1, 2, 3, -1, 4)
var i = 0
while (true) {
if (i >= items.size || items[i] < 0) break
println("ok: ${items[i]}")
i++
}
}Comparar while y for
Si conoce de antemano el número de iteraciones, prefiera for. Use while cuando las iteraciones dependan del estado en tiempo de ejecución.
fun main() {
// for: known bounds
for (i in 1..3) print("$i ")
println()
// while: state-driven
var n = 1
while (n <= 3) { print("$n "); n++ }
println()
}Bucle con dos variables
Los bucles while pueden realizar el seguimiento de varias variables, lo que resulta útil para algoritmos como el de Fibonacci.
fun main() {
var a = 0
var b = 1
while (b < 50) {
print("$b ")
val next = a + b
a = b
b = next
}
println() // 1 1 2 3 5 8 13 21 34
}do-while siempre se ejecuta una vez
Aunque la condición sea falsa desde el principio, el cuerpo de do-while se ejecuta una vez. A veces esto es exactamente lo que necesita; otras veces es un error.
fun main() {
var x = 100
do {
println("x = $x") // prints once
x--
} while (x > 1000) // false immediately
}Comprobación rápida
¿Qué bucle garantiza que su cuerpo se ejecute al menos una vez, independientemente de la condición?
Resumen
Use while cuando el número de iteraciones dependa de una condición en tiempo de ejecución. Use do-while cuando el cuerpo deba ejecutarse al menos una vez (por ejemplo, para validaciones o reintentos). Prefiera for si conoce el número de iteraciones.
Preguntas frecuentes
¿La lección «while y do-while: cuándo usar cada uno» es gratis?
Sí — el texto completo de «while y do-while: cuándo usar cada uno» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué aprenderé en «while y do-while: cuándo usar cada uno»?
Escriba bucles while y do-while y comprenda sus casos de uso. Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kotlin Academy?
No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «while y do-while: cuándo usar cada uno»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?
Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Bucle for sobre rangos y colecciones
- while y do-while: cuándo usar cada uno
- forEach, repeat y forEachIndexed
- break, continue y retornos etiquetados