【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以下");
}
}
動作解説
if
とelse 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のループ処理について詳しく学びます。