Rust における条件文

Beginner

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

はじめに

この実験では、Rust で if-else 文を使う方法を学びます。他のプログラミング言語と同様に、Rust の if-else 文は条件の周りに丸括弧を必要とせず、各条件の後にコード ブロックが続きます。これらの条件分岐は式であるため、すべてのブランチは同じ型を返さなければなりません。提供されたコード例では、まず変数 n が 0 未満かどうかをチェックし、その場合は n が負であることを出力します。n が 0 以上の場合、次に 0 より大きいかどうかをチェックし、n が正であることを出力します。最後に、以前の条件がすべて満たされない場合、n がゼロであることを出力します。もう 1 つの例では、if-else 文を式として使って変数 big_n に新しい値を割り当てる方法を示しています。n が -10 から 10 の間の場合、n が小さな数であることを出力し、big_n10 * n を割り当てます。それ以外の場合、n が大きな数であることを出力し、big_nn / 2 を割り当てます。最後に、nbig_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");

            // この式は `i32` を返します。
            10 * n
        } else {
            println!(", and is a big number, halve the number");

            // この式も `i32` を返さなければなりません。
            n / 2
            // TODO ^ Try suppressing this expression with a semicolon.
        };
    //   ^ ここにセミコロンを忘れないでください!すべての `let` 束縛には必要です。

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

まとめ

おめでとうございます!あなたは If/Else の実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を行って練習することができます。