Expresiones if
- Los bloques de código asociados a una condición en una expresión
ifse conocen comoarms(al igual que las opciones enmatch) - La condición de la expresión
ifse escribe sin paréntesis - La utilización de
elsees opcional elsesolo se ejecuta siifno se cumple- Se espera un
bool, Rust no intenta convertir valores no booleanos a booleanos
fn main() {
let age: u8 = 20;
if age >= 18 {
println!("+18");
} else {
println!("-18");
}
}
else if
- Para utilizar varias condiciones
- Deja de ejecutarse al entrar al
ifoelse if - No es lo mismo que crear
ifindividuales, ya que si dos o mas cumplen la condición, ambos se ejecutarían, en cambioelse ifsolo ejecuta el primero que cumpla la condición y no evalúa los siguienteselse if - Evitar utilizar múltiples
else if, por ejemplo si se tiene más de uno entonces se puede refactorizar para utilizarmatch
fn main() {
let num: u8 = 4;
if num % 4 == 0 {
println!("El número es divisible por 4");
} else if num % 3 == 0 {
println!("El número es divisible por 3");
} else if num % 2 == 0 {
println!("El número es divisible por 2");
} else {
println!("El número no es divisible por 4, 3 o 2");
}
}
Uso de if en una declaración de variable (let)
ifyelsedeben retornar el mismo tipo de dato- Rust necesita saber en tiempo de compilación de qué tipo es la variable (ya que se podría seguir utilizando después), por eso ambos resultados deben devolver el mismo tipo de dato
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {number}");
}
fn main() {
let condition: bool = true;
let result: &str = if condition { "true" } else { "false" };
println!("Result: {result}");
}