Controle de Fluxo
if em Rust é uma expressão, não só uma instrução — ele pode produzir um valor, por isso você pode atribuir o resultado de um if/else diretamente a uma variável em vez de declarar a variável primeiro e atribuir dentro de cada ramo.
fn main() {
let number = 7;
let description = if number % 2 == 0 {
"even"
} else {
"odd"
};
println!("{} is {}", number, description);
}7 is odd
loop, while, e for
loop roda para sempre até você sair dele explicitamente com break — e break pode carregar um valor para fora do loop, se tornando o resultado da expressão loop, algo que while e for não conseguem fazer já que não são feitos para calcular um valor. for itera diretamente sobre um intervalo ou coleção, sem nenhum controle manual de í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
Próximo: vectors — o tipo de array crescível do Rust.
Practice Exercise
Defina uma variável score: i32 = 73. Use uma expressão if/else para definir uma variável grade como "pass" se score for 60 ou mais, ou "fail" caso contrário, depois imprima grade.