【Rust】条件分岐の使い方とサンプルコード

Rustの条件分岐の使い方とサンプルコード

Rustは安全性とパフォーマンスを重視したシステムプログラミング言語であり、条件分岐もその特徴を反映しています。この記事では、Rustでの条件分岐の使い方と実際のサンプルコードを紹介します。

概要

条件分岐はプログラムの中で特定の条件に基づいて処理を分岐させるための制御構造です。Rustでは、

if

文、

match

式、

while

for

ループなど、複数の方法で条件分岐を実現することができます。

この記事では、それぞれの方法について詳しく見ていきます。また、実際のサンプルコードを交えながら、それぞれの方法の違いや使いどころについても解説します。

コンテンツ

  1. if

    文の基本的な使い方

  2. match

    式によるパターンマッチング

  3. if let

    式と

    while let

    式の便利な使い方

  4. サンプルコードを用いた実践的な例

1.

if

文の基本的な使い方

if

文は、指定された条件が真の場合にのみ特定の処理を実行するための制御構造です。基本的な使い方は以下の通りです。


fn main() {
    let number = 6;

    if number % 2 == 0 {
        println!("偶数です");
    } else {
        println!("奇数です");
    }
}

この例では、変数

number

が偶数か奇数かによって出力するメッセージを変えています。Rustの

if

文では、

else if

を使って複数の条件を評価することもできます。

2.

match

式によるパターンマッチング

Rustの

match

式は、パターンマッチングを行うための強力な機能です。

match

式を使用すると、複数の条件に対して個別の処理を行うことができます。


enum Coin {
    Penny,
    Nickel,
    Dime,
    Quarter,
}

fn value_in_cents(coin: Coin) -> u8 {
    match coin {
        Coin::Penny => 1,
        Coin::Nickel => 5,
        Coin::Dime => 10,
        Coin::Quarter => 25,
    }
}

この例では、

Coin

という列挙型を定義し、

match

式を使用してそれぞれのコインの価値を返す関数を実装しています。

match

式は、列挙型や他の構造体のパターンマッチングに非常に便利です。

3.

if let

式と

while let

式の便利な使い方

if let

式と

while let

式は、

match

式の一部の機能を簡略化したものです。特定のパターンにマッチした場合の処理を

if

文や

while

ループ内で行うことができます。


let some_value = Some(5);
if let Some(x) = some_value {
    println!("{}", x);
}

let mut stack = Vec::new();
stack.push(1);
stack.push(2);
stack.push(3);

while let Some(top) = stack.pop() {
    println!("{}", top);
}

この例では、

if let

式を使用して

Some

型の値を展開し、値を取り出しています。同様に、

while let

式を使用してスタックから値を取り出し、スタックが空になるまで繰り返し処理を行います。

4. サンプルコードを用いた実践的な例

以下のサンプルコードでは、入力された数値に応じて異なるメッセージを出力する関数を定義しています。これにより、

if

文や

match

式の実践的な使い方を理解することができます。


fn main() {
    let number = 7;
    print_message(number);
}

fn print_message(number: u32) {
    if number < 5 {
        println!("入力値は5未満です");
    } else if number >= 5 && number <= 10 {
        println!("入力値は5以上、かつ10以下です");
    } else {
        match number {
            11 => println!("入力値は11です"),
            _ => println!("入力値は11より大きいです"),
        }
    }
}

このサンプルコードでは、

print_message

関数内で

if

文と

match

式を組み合わせて、入力値に応じたメッセージを出力しています。

まとめ

Rustでは、

if

文、

match

式、

if let

式、

while let

式など、様々な方法で条件分岐を実現することができます。それぞれの方法には特徴や使いどころがありますので、適切に活用することが重要です。条件分岐をうまく利用して、安全で効率的なRustプログラムを作成しましょう。

よくある質問

  • Q. Rustの条件分岐はどのように使いますか?
  • A: Rustでは

    if

    else if

    else

    を使って条件分岐を行います。また、

    match

    キーワードを使ってパターンマッチングを行うこともできます。

  • Q. 条件分岐のサンプルコードを教えてください。

  • A:

fn main() {
    let number = 6;

    if number % 2 == 0 {
        println!("偶数です");
    } else {
        println!("奇数です");
    }
}
  • Q. Rustの
    match

    はどのような使い方がありますか?

  • A:

    match

    はパターンマッチングを行うためのキーワードで、様々なパターンに対する処理を記述することができます。例えば、列挙型やタプルなどのパターンにマッチさせることができます。

  • Q. 条件分岐で複数の条件を一度にチェックする方法はありますか?

  • A: Rustでは

    if

    match

    に複数の条件を一度にチェックすることができます。

    if

    文では

    else if

    を使って複数の条件をチェックし、

    match

    では複数のパターンに対する処理を記述することができます。

  • Q. 条件分岐でのエラーハンドリングはどのように行いますか?

  • A: Rustでは
    Result

    Option

    を使ってエラーハンドリングを行います。

    match

    を使って

    Result

    Option

    の値に対してパターンマッチングを行い、エラーの場合の処理を記述することが一般的です。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
0
Would love your thoughts, please comment.x
()
x