Café y Código

4. Condicionales: Decisiones inteligentes

if/else como expresión

En Kotlin, if no es solo un statements: devuelve un valor, como un operador ternario pero más legible:

if-else.kt
KOTLIN
1val edad = 20
2
3// Como expresión (devuelve un valor)
4val mensaje = if (edad >= 18) "Mayor de edad" else "Menor de edad"
5println(mensaje) // "Mayor de edad"
6
7// Sin else, retorna Unit
8if (edad >= 18) {
9 println("Puedes votar")
10}

when: El switch mejorado

when reemplaza al switch de Java con mucho más poder:

when.kt
KOTLIN
1val dia = "Lunes"
2
3when (dia) {
4 "Lunes", "Martes", "Miércoles", "Jueves", "Viernes" -> println("Día laboral")
5 "Sábado", "Domingo" -> println("Fin de semana")
6 else -> println("Día inválido")
7}
8
9// when sin argumento (como if-else chain)
10val nota = 85
11val calificacion = when {
12 nota >= 90 -> "A"
13 nota >= 80 -> "B"
14 nota >= 70 -> "C"
15 else -> "F"
16}
17println(calificacion) // "B"

when con rangos y tipos

when puede verificar rangos, tipos y más:

when-avanzado.kt
KOTLIN
1// Con rangos
2val puntos = 75
3when (puntos) {
4 in 90..100 -> println("Excelente")
5 in 70..89 -> println("Bueno")
6 in 50..69 -> println("Regular")
7 else -> println("Necesita mejorar")
8}
9
10// Con tipos
11val x: Any = 42
12when (x) {
13 is Int -> println("Es un entero: $x")
14 is String -> println("Es un texto: $x")
15 is Boolean -> println("Es un booleano: $x")
16}

💻 Misión

Crea un programa que pida la temperatura y use when para clasificarla: bajo 10 = "frío", 10-25 = "agradable", sobre 25 = "caluroso".

👁️ Ver solución sugerida
main.kt
KOTLIN
1fun main() {
2 val temperatura = 18
3
4 val clima = when {
5 temperatura < 10 -> "frío"
6 temperatura in 10..25 -> "agradable"
7 else -> "caluroso"
8 }
9 println("Con $temperatura°C hace $clima")
10}

Pon a prueba tu lógica

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.