Condiciones
si, osi, sino, si como valor y casos sobre valores simples.
si ejecuta un bloque cuando la condición es verdadera; osi encadena otra condición y sino recoge el resto. Los operadores lógicos son &&, || y !.
si temperatura > 30
imprimir("¡Hace mucho calor!")
osi temperatura > 20
imprimir("Hace buen tiempo")
sino
imprimir("Hace frío")
si también produce un valor
En ese caso sino es obligatorio y todas las ramas deben tener el mismo tipo:
var etapa = si edad >= 18 "adulto" sino "joven"
casos con valores simples
Sobre enteros, cadenas y booleanos, casos elige entre valores concretos. Una rama puede tener varios valores y la rama final _ recoge todo lo demás:
casos dia
6, 7 => imprimir("Fin de semana")
_ => imprimir("Día laborable")
Programa completo
// Tomar decisiones con si, osi y sino.
fn inicio()
var temperatura = 28
si temperatura > 30
imprimir("¡Hace mucho calor!")
osi temperatura > 20
imprimir("Hace buen tiempo")
sino
imprimir("Hace frío")
// Comparaciones: == != < <= > >=
// Combinaciones: && (y), || (o), ! (no)
var es_fin_de_semana = verdadero
var llueve = falso
si es_fin_de_semana && !llueve
imprimir("Vamos al parque")
// si también puede producir un valor. En ese caso necesita sino.
var edad = 15
var etapa = si edad >= 18 "adulto" sino "joven"
imprimir("Etapa: ${etapa}")
// casos elige entre valores concretos. Una rama puede tener varios valores
// y la rama final _ recoge todo lo demás.
var dia = 6
casos dia
6, 7 => imprimir("Fin de semana")
_ => imprimir("Día laborable")
// Con números enteros, una rama puede ser un rango. El final no se
// incluye: 60..90 va de 60 a 89.
var puntos = 75
casos puntos
0..60 => imprimir("Suspenso")
60..90 => imprimir("Aprobado")
90..101 => imprimir("Sobresaliente")
_ => imprimir("Puntuación inválida")