Rangos en bucles
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 51 de 93.
Hasta ahora, hemos usado 1..5 para crear rangos que cuentan hacia arriba de uno en uno. Kotlin ofrece formas más flexibles de definir rangos para tus bucles.
Para contar hacia atrás, usa downTo:
for (i in 5 downTo 1) {
println(i)
}
// Salida: 5, 4, 3, 2, 1Para omitir números, añade step para controlar el incremento:
for (i in 0..10 step 2) {
println(i)
}
// Salida: 0, 2, 4, 6, 8, 10Puedes combinar downTo con step para contar hacia atrás con intervalos personalizados:
for (i in 10 downTo 1 step 3) {
println(i)
}
// Salida: 10, 7, 4, 1Si necesitas excluir el último valor, usa until en lugar de ..:
for (i in 1 until 5) {
println(i)
}
// Salida: 1, 2, 3, 4La palabra clave until es especialmente útil cuando trabajas con índices basados en cero, donde a menudo necesitas detenerte antes de alcanzar un número determinado.
Desafío
IntermedioLee dos enteros de la entrada: start y end.
Imprime todos los números pares desde start hasta end (inclusive), cada uno en una línea separada.
Usa downTo con step para crear el rango. Si start es impar, comienza desde el primer número par menor que él.
Por ejemplo, si la entrada es:
10
2La salida debe ser:
10
8
6
4
2Si la entrada es:
9
3La salida debe ser:
8
6
4Si no hay números pares en el rango solicitado, imprime No even numbers en una línea. De lo contrario, imprime cada número par en su propia línea.
Pruébalo tú mismo
fun main() {
// Leer entrada
val start = readLine()!!.toInt()
val end = readLine()!!.toInt()
// TODO: Escribe tu código debajo
// Usa downTo con step para imprimir todos los números pares desde start hasta end
// Si start es impar, comienza desde el primer número par por debajo de él
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Kotlin