Условные операторы в Rust

Beginner

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

Введение

В этом практическом занятии мы узнаем, как использовать операторы if-else в Rust. Подобно другим языкам программирования, в Rust операторы if-else не требуют круглых скобок вокруг условия, и за каждым условием следует блок кода. Эти условные конструкции являются выражениями, поэтому все ветви должны возвращать один и тот же тип. В приведенном ниже кодовом примере мы сначала проверяем, меньше ли переменная n нуля, и если это так, выводим, что n отрицательна. Если n не меньше нуля, мы проверяем, больше ли она нуля, и выводим, что n положительна. Наконец, если ни одно из предыдущих условий не выполняется, мы выводим, что n равно нулю. В другом примере показано, как оператор if-else может быть использован в качестве выражения для присвоения новой значения переменной big_n. Если n находится в диапазоне от -10 до 10, выводится сообщение о том, что n - это маленькое число, и 10 * n присваивается переменной big_n. В противном случае выводится сообщение о том, что n - это большое число, и n / 2 присваивается переменной big_n. В конце выводятся итоговые значения n и big_n.

Примечание: Если практическое занятие не уточняет имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать main.rs, скомпилировать и запустить его с помощью команд rustc main.rs &&./main.

if/else

Разветвление с использованием if-else аналогично другим языкам. В отличие от многих из них, логическое условие не нужно заключать в круглые скобки, и за каждым условием следует блок. Условные конструкции if-else являются выражениями, и все ветви должны возвращать один и тот же тип.

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");

            // This expression returns an `i32`.
            10 * n
        } else {
            println!(", and is a big number, halve the number");

            // This expression must return an `i32` as well.
            n / 2
            // TODO ^ Try suppressing this expression with a semicolon.
        };
    //   ^ Don't forget to put a semicolon here! All `let` bindings need it.

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

Резюме

Поздравляем! Вы завершили практическое занятие по If/Else. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.