Control de Flujo
if en Rust es una expresión, no solo una sentencia — puede producir un valor, por eso puedes asignar el resultado de un if/else directamente a una variable en vez de declarar la variable primero y asignar dentro de cada rama.
fn main() {
let number = 7;
let description = if number % 2 == 0 {
"even"
} else {
"odd"
};
println!("{} is {}", number, description);
}7 is odd
loop, while, y for
loop se ejecuta para siempre hasta que lo interrumpes explícitamente con break — y break puede sacar un valor del bucle, convirtiéndose en el resultado de la expresión loop, algo que while y for no pueden hacer ya que no están pensados para calcular un valor. for itera directamente sobre un rango o colección, sin necesidad de llevar la cuenta manual de un índice.
fn main() {
let mut count = 0;
let result = loop {
count += 1;
if count == 5 {
break count * 2;
}
};
println!("result = {}", result);
for i in 0..3 {
println!("i = {}", i);
}
}result = 10 i = 0 i = 1 i = 2
Siguiente: vectors — el tipo de array creciente (growable) de Rust.
Practice Exercise
Define una variable score: i32 = 73. Usa una expresión if/else para fijar una variable grade en "pass" si score es 60 o más, o "fail" en caso contrario, luego imprime grade.