【Rust】第2章第2回:ループ処理:for文、while文、loopの活用

本記事では、Rustにおけるループ処理の基本であるfor
文、while
文、loop
の使い方について詳しく解説します。繰り返し処理を適切に使い分けることで、効率的なプログラムを作成できるようになります。
0. 記事の概要
この記事を読むメリット
- Rustのループ処理の基本を理解: for文、while文、loopの違いを学べます。
- コードの効率化: 適切なループを活用し、よりシンプルで可読性の高いコードを実装できます。
- エラーを防ぐ: 無限ループやインデックスエラーを回避する方法を学べます。
この記事で学べること
- for文の使い方と反復処理
- while文の条件付きループ
- loopによる無限ループとbreakの活用
1. for文の基本

1.1 for文の基本構文
for文は、コレクション(配列や範囲)を反復処理する際に使用します。
fn main() {
let numbers = [1, 2, 3, 4, 5];
for num in numbers.iter() {
println!("数値: {}", num);
}
}
動作解説
このコードでは、配列numbers
の各要素を順番に取り出して出力しています。
1.2 範囲を指定したfor文
for文は、範囲を指定してループを行うことも可能です。
fn main() {
for i in 1..=5 {
println!("{}回目のループ", i);
}
}
動作解説
1..=5
の範囲が指定され、1から5までの数値をループします。
2. while文の基本

2.1 while文の基本構文
while文は、条件がtrueである限りループを続けます。
fn main() {
let mut count = 0;
while count < 5 {
println!("カウント: {}", count);
count += 1;
}
}
動作解説
count
が5未満の間、ループが続きます。ループのたびにcountが1ずつ増加します。
2.2 breakを用いたループ終了
whileループ内でbreakを使用すると、任意のタイミングでループを終了できます。
fn main() {
let mut x = 10;
while x > 0 {
if x == 5 {
break;
}
println!("xの値: {}", x);
x -= 1;
}
}
動作解説
変数x
が5になった時点で、break
が実行され、ループが終了します。
3. loopの活用

3.1 無限ループの作成
loop
を使用すると、条件なしで無限ループを作成できます。
fn main() {
loop {
println!("無限ループ中...");
}
}
動作解説
このコードは、明示的に停止しない限り永遠に実行されます。
3.2 breakとreturnを使ったループ終了
breakを使用してloopを終了し、値を返すこともできます。
fn main() {
let result = loop {
let x = 5;
break x * 2;
};
println!("結果: {}", result);
}
動作解説
loop
内で計算した値をbreak
を使って返し、変数result
に格納しています。
4. よくあるエラーと対処法
- 「index out of bounds」エラー: 配列のインデックス範囲を超えた場合に発生。ループの範囲を確認する。
- 「infinite loop detected」エラー: 無限ループに陥る可能性がある場合に発生。適切な終了条件を追加する。
5. まとめ
本記事では、Rustのループ処理であるfor
文、while
文、loop
の基本的な使い方を解説しました。次回は、Rustの関数の定義と呼び出しについて詳しく説明します。