Declarações Condicionais em Rust

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, aprendemos a usar instruções if-else em Rust. Similarmente a outras linguagens de programação, as instruções if-else em Rust não requerem parênteses em torno da condição e cada condição é seguida por um bloco de código. Essas condicionais são expressões, portanto, todos os ramos devem retornar o mesmo tipo. No exemplo de código fornecido, primeiro verificamos se a variável n é menor que 0 e, em caso afirmativo, imprimimos que n é negativo. Se n não for menor que 0, verificamos se é maior que 0 e imprimimos que n é positivo. Finalmente, se nenhuma das condições anteriores for atendida, imprimimos que n é zero. Outro exemplo demonstra como a instrução if-else pode ser usada como uma expressão para atribuir um novo valor à variável big_n. Se n estiver entre -10 e 10, imprime que n é um número pequeno e atribui 10 * n a big_n. Caso contrário, imprime que n é um número grande e atribui n / 2 a big_n. A saída final de n e big_n é impressa no final.

Nota: Se o laboratório não especificar um nome de arquivo, você pode usar qualquer nome de arquivo que desejar. Por exemplo, você pode usar main.rs, compilar e executar com rustc main.rs && ./main.

if/else

A ramificação com if-else é semelhante a outras linguagens. Ao contrário de muitas delas, a condição booleana não precisa ser envolvida por parênteses, e cada condição é seguida por um bloco. As condicionais if-else são expressões, e todos os ramos devem 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 um `i32`.
            10 * n
        } else {
            println!(", and is a big number, halve the number");

            // Esta expressão também deve retornar um `i32`.
            n / 2
            // TODO ^ Tente suprimir esta expressão com um ponto-e-vírgula.
        };
    //   ^ Não se esqueça de colocar um ponto-e-vírgula aqui! Todas as ligações `let` precisam dele.

    println!("{} -> {}", n, big_n);
}

Resumo

Parabéns! Você concluiu o laboratório If/Else. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.