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
1 val edad = 20
2
3 // Como expresión (devuelve un valor)
4 val mensaje = if (edad >= 18) "Mayor de edad" else "Menor de edad"
5 println(mensaje) // "Mayor de edad"
6
7 // Sin else, retorna Unit
8 if (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
1 val dia = "Lunes"
2
3 when (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)
10 val nota = 85
11 val calificacion = when {
12 nota >= 90 -> "A"
13 nota >= 80 -> "B"
14 nota >= 70 -> "C"
15 else -> "F"
16 }
17 println(calificacion) // "B"

when con rangos y tipos

when puede verificar rangos, tipos y más:

when-avanzado.kt
KOTLIN
1 // Con rangos
2 val puntos = 75
3 when (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
11 val x: Any = 42
12 when (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
1 fun 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.