English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
As instruções condicionais no idioma Rust têm a seguinte forma:
fn main() { let number = 3; if number < 5 { println!("Condição verdadeira"); } else { println!("Condição falsa"); } }
No programa acima há uma instrução condicional if, essa sintaxe é muito comum em muitos outros idiomas, mas também há algumas diferenças: primeiramente, a expressão condicional number < 5 Não é necessário usar parênteses ao redor (não é proibido, não permitido); mas o if do Rust não tem a regra de usar {} para um único comando sem bloco, não é permitido usar uma única sentença para substituir um bloco. No entanto, o Rust ainda suporta o else tradicional-A sintaxe do if:
fn main() { let a = 12; let b; if a > 0 { b = 1; } else if a < 0 { b = -1; } else { b = 0; } println!("b é {}", b); }
Resultado da Execução:
b é 1
As expressões condicionais no Rust devem ser do tipo bool, por exemplo, o programa a seguir está errado:
fn main() { let number = 3; if number { // Erro, esperado `bool`, encontrado inteirorustc(E0308) println!("Sim"); } }
Embora C/C++ As expressões condicionais da linguagem são representadas por inteiros, 0 ou verdadeiro, mas essa regra é proibida em muitos idiomas que se concentram na segurança do código.
Combinando com o que aprendemos sobre expressões do corpo da função anterior, vamos associar:
if <condition> { bloco 1 } else { bloco 2 }
A sintaxe dessa { bloco 1 } e { bloco 2 } Pode ser uma expressão do corpo da função?
A resposta é afirmativa! Isso significa que, no Rust, podemos usar if-A estrutura else é semelhante à expressão de operador ternário (A ? B : C) O efeito é:
fn main() { let a = 3; let number = if a > 0 { 1 } else { -1 }; println!("number é {}", number); }
Resultado da Execução:
number é 1
AtençãoDois expressões do corpo da função devem ter o mesmo tipo! E deve haver um else seguido de um bloco de expressão.