第5章 制御構造
この章では、Rustの条件分岐・ループなど、プログラムの流れを制御する基本構文について学びます。これらの構文を理解することで、より柔軟で複雑なロジックを実現できるようになります。
if文による条件分岐
Rustのif文は、他の多くの言語と似ていますが、条件は必ずbool型である必要があります。
fn main() {
let score = 80;
if score >= 90 {
println!("優秀です!");
} else if score >= 70 {
println!("合格です。");
} else {
println!("不合格です。");
}
}
ifは式としても使える
Rustではifは値を返す式としても利用可能です。
fn main() {
let condition = true;
let result = if condition { "Yes" } else { "No" };
println!("結果: {}", result);
}
ループ構文
loop(無限ループ)
fn main() {
let mut count = 0;
loop {
println!("カウント: {}", count);
count += 1;
if count >= 5 {
break; // ループを抜ける
}
}
}
whileループ
fn main() {
let mut number = 3;
while number > 0 {
println!("{}...", number);
number -= 1;
}
println!("発射!");
}
forループ
fn main() {
let array = [10, 20, 30];
for value in array.iter() {
println!("値: {}", value);
}
}
または数値レンジで
fn main() {
// 5を含む
for i in 1..=5 {
println!("{}回目", i);
}
// 5を含まない
for j in 1..5 {
println!("{}回目", j);
}
}
breakとcontinue
ループ内でbreakやcontinueを使うことで、より細かな制御が可能です。
fn main() {
for i in 1..=10 {
if i % 2 == 0 {
continue; // 偶数はスキップ
}
if i == 7 {
break; // 7で終了
}
println!("奇数: {}", i);
}
}
ラベル付きループ
ネストされたループで外側のループを制御したい場合は、ラベルを使うことができます。
fn main() {
'outer: for i in 1..=3 {
for j in 1..=3 {
if i == 2 && j == 2 {
break 'outer; // 外側ループを抜ける
}
println!("i = {}, j = {}", i, j);
}
}
}
練習問題1.
数値を1〜100まで表示し、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数なら「FizzBuzz」と表示するプログラムを書いてください。
練習問題2.
配列をforループで処理し、すべての要素の合計を求めてください。
練習問題3.
loop を使って、ユーザーが「終了」と入力するまで標準入力から文字列を読み取り、すべて表示し続けるプログラムを書いてください。
最終更新日:2026年01月07日 10時53分08秒