if
ou else
A ramificação com if
ou else
é semelhante às outras linguagens. Ao contrário delas, a condição booleana não precisa ser envolvida por parênteses, e cada condição é seguida por um bloco. As condicionais if
e else
são expressões, e todos os ramos deve retornar o mesmo tipo.
fn main() { let n = 5; if n < 0 { print!("{} is negative", n); } else if n > 0 { print!("{} is positive", n); } else { print!("{} is zero", n); } let big_n = if n < 10 && n > -10 { println!(", and is a small number, increase ten-fold"); // Esta expressão retorna uma `i32`. 10 * n } else { println!(", and is a big number, halve the number"); // Esta expressão deve retornar também uma `i32`. n / 2 // TODO ^ Tente suprimir esta expressão com um ponto e vírgula. }; // ^ Não esqueça do ponto e vírgula! Todos vínculos de `let` precisam. println!("{} -> {}", n, big_n); }