loop:無限ループ
loopは明示的にbreakするまで無限に繰り返されるループです。
fn main() {
let mut count = 0;
loop {
count += 1;
println!("{}回目", count);
if count == 3 {
break;
}
}
}
loopはbreakに値を渡すことで、式として値を返すこともできます。
fn main() {
let mut n = 0;
let result = loop {
n += 1;
if n == 5 {
break n * 10;
}
};
println!("{}", result); // 50
}
while:条件付きループ
fn main() {
let mut n = 5;
while n > 0 {
println!("{}", n);
n -= 1;
}
println!("発射!");
}
for:範囲や要素の繰り返し
forは、範囲(Range)や後の章で学ぶコレクションの要素を順番に処理するのに使います。
fn main() {
for i in 1..5 {
println!("{}", i); // 1, 2, 3, 4 (5は含まない)
}
for i in 1..=5 {
println!("{}", i); // 1, 2, 3, 4, 5 (5を含む)
}
}
breakとcontinue
break:ループを抜けるcontinue:その回の処理をスキップして次の繰り返しに進む
fn main() {
for i in 1..=10 {
if i % 2 != 0 {
continue; // 奇数はスキップ
}
if i > 6 {
break; // 6を超えたら終了
}
println!("{}", i); // 2, 4, 6
}
}
演習:出力を予想する(人力実行)
人力実行問題
RUSTコードと入力を読み、実行した場合の標準出力を考えて入力してください。
次のプログラムの出力を考えてください。
fn main() {
let mut sum = 0;
for i in 1..=5 {
sum += i * 2;
}
println!("{}", sum);
}
(このプログラムは標準入力を使用しません)
未回答