Menu
Coddy logo textTech

複数の値とのマッチング

CoddyのRustジャーニー「論理とフロー」セクションの一部。レッスン 2/66。

同じコードを実行すべき、複数の異なる値にマッチさせる必要がある場合があります。値ごとに個別のアームを書く代わりに、Rustでは|(OR)演算子を使って、1つのアーム内で複数のパターンを組み合わせることができます。

1つのアームで複数の値にマッチさせる方法は次のとおりです。

let month = 12;

match month {
    12 | 1 | 2 => println!("Winter"),
    3 | 4 | 5 => println!("Spring"),
    6 | 7 | 8 => println!("Summer"),
    9 | 10 | 11 => println!("Fall"),
    _ => println!("Invalid month"),
}

| 演算子は英語の「OR」のように機能します。値が | で区切られたパターンのいずれかに一致すると、そのアームが実行されます。これにより、すべて同じ処理を行うアームを個別に用意するよりも、コードがはるかにすっきりします。

challenge icon

チャレンジ

簡単

曜日を表す日番号(1~7)が入力として与えられます。入力を読み取り、整数に変換し、match 式と | 演算子を使用して、平日か週末かを出力してください。

要件:

  • 曜日が 1234、または 5 の場合は、"Weekday" を出力する
  • 曜日が 6 または 7 の場合は、"Weekend" を出力する
  • その他の数値の場合は、"Invalid day" を出力する

入力: 曜日番号を表す単一の整数

出力: "Weekday""Weekend"、または "Invalid day" のいずれかを出力する

自分で試してみよう

use std::io;

fn main() {
    // 入力を読み取る
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let day: i32 = input.trim().parse().expect("Please enter a number");
    
    // TODO: match式と|演算子を使って以下にコードを書いてください
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ