Rust

【Rust】第2章第1回:条件分岐:if文とmatch式の使い方

本記事では、Rustの条件分岐であるif文とmatch式の基本的な使い方を詳しく解説します。条件によって異なる処理を実行できるようになり、より柔軟なプログラムを書けるようになります。

0. 記事の概要

この記事を読むメリット

  • Rustの条件分岐の基本を理解: if文とmatch式の違いを学べます。
  • コードの可読性を向上: 適切な条件分岐を用いた効率的なプログラムの書き方が分かります。
  • 実際のコード例を学ぶ: よく使われるパターンをコード付きで解説します。

この記事で学べること

  • Rustのif文の基本構文
  • match式の使い方と応用
  • ifとmatchの使い分け

1. if文の基本構文

1.1 if文の基本

Rustのif文は、条件によって処理を分岐するために使用されます。

fn main() {
    let x = 10;
    if x > 5 {
        println!("xは5より大きいです");
    }
}

動作解説

このコードでは、変数xが5より大きい場合にメッセージが出力されます。

1.2 elseを使った分岐

elseを使用すると、条件が満たされなかった場合の処理を追加できます。

fn main() {
    let x = 3;
    if x > 5 {
        println!("xは5より大きいです");
    } else {
        println!("xは5以下です");
    }
}

動作解説

変数xが5以下の場合、elseの処理が実行されます。

2. if文の応用

2.1 else ifを使った複数条件

複数の条件を扱う場合は、else ifを使用します。

fn main() {
    let x = 7;
    if x > 10 {
        println!("xは10より大きい");
    } else if x > 5 {
        println!("xは6以上10以下");
    } else {
        println!("xは5以下");
    }
}

動作解説

ifelse ifの条件を順にチェックし、最初に合致したブロックが実行されます。

3. match式の基本

3.1 matchの基本構文

matchは、複数の条件を分岐させる際に便利な構文です。

fn main() {
    let number = 2;
    match number {
        1 => println!("One"),
        2 => println!("Two"),
        _ => println!("Other"),
    }
}

動作解説

このコードでは、numberの値に応じたメッセージが出力されます。

4. match式の応用

4.1 変数を使ったmatch

matchの分岐条件に変数を使用できます。

fn main() {
    let x = "hello";
    match x {
        "hello" => println!("こんにちは"),
        "goodbye" => println!("さようなら"),
        _ => println!("その他の挨拶"),
    }
}

動作解説

文字列の値に応じて異なるメッセージが表示されます。

5. よくあるエラーと対処法

  • 「non-exhaustive patterns」エラー: match式ですべてのケースを網羅していない場合に発生。_を追加する。
  • 「mismatched types」エラー: if文やmatch式で型が合っていない場合に発生。型を明示する。

6. まとめ

本記事では、Rustのif文とmatch式の基本と応用を解説しました。次回は、Rustのループ処理について詳しく学びます。