If como expresión
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 31 de 93.
Has visto cómo se puede usar if en línea para elegir entre dos valores. Pero cuando tus bloques if-else contienen varias instrucciones, aún puedes usar toda la estructura como una expresión: la última expresión de cada rama se convierte en el valor devuelto.
fun main() {
val score = 85
val message = if (score >= 60) {
val grade = "passing"
"You got a $grade score!"
} else {
val grade = "failing"
"You got a $grade score."
}
println(message) // Imprime: ¡Obtuviste una puntuación de aprobado!
}Cada rama puede contener varias instrucciones, pero la expresión última de la rama es la que se devuelve y se asigna a la variable. En este caso, la cadena de la línea final de cada bloque se convierte en el valor de message.
Esto también funciona con cadenas de else if:
fun main() {
val temperature = 25
val description = if (temperature > 30) {
"Hot"
} else if (temperature > 20) {
"Warm"
} else {
"Cool"
}
println(description) // Imprime: Warm
}Al usar if como expresión, la rama else es obligatoria: Kotlin debe garantizar que se devuelva un valor independientemente de qué condición sea verdadera.
Desafío
FácilSe te proporciona la siguiente variable:
val hours = 45Usa una expresión if con varias instrucciones en cada rama para determinar el estado de pago de un trabajador y crear un mensaje.
Crea una variable payStatus usando una expresión if:
- Si
hourses mayor que 40:- Crea una variable
overtimeigual ahours - 40 - La última expresión debe ser
"Overtime: $overtime extra hours"
- Crea una variable
- En caso contrario:
- Crea una variable
remainingigual a40 - hours - La última expresión debe ser
"Regular: $remaining hours until overtime"
- Crea una variable
Imprime el valor de payStatus.
Pruébalo tú mismo
fun main() {
val hours = 45
// TODO: Escribe tu código debajo
// Crea una variable payStatus usando una expresión if
// Si hours > 40: crea la variable overtime y devuelve "Overtime: $overtime extra hours"
// De lo contrario: crea la variable remaining y devuelve "Regular: $remaining hours until overtime"
}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