繰り返し処理にはloop
、while
、for
があります。
loop
loop
ではブロックに書かれた処理を無限に繰り返すことができます。ただし、break
により繰り返しを終了できます。
let mut i = 1;
loop {
println!("{}", i);
// `1..=5` まで表示される
// `i` が `5`なら繰り返しを終了する
if i == 5 {
break;
}
i += 1;
}
while
while 条件
は条件がtrue
の間処理を繰り返せます。上記のloop
のコードはwhile
に書き直せます。
let mut i = 1;
while i <= 5 {
println!("{}", i);
// `1..=5` まで表示される
i += 1;
}
for
for
はイテレーターの各値と共にブロック内の処理を繰り返します。
for val in 1..=5 {
println!("{}", val);
// `1..=5` まで表示される
}
インデックス値もほしい場合は::enumerate
を使います。
for (i, val) in (1..=5).enumerate() {
println!("{}:{}", i, val);
// 以下が表示
// 0:1
// 1:2
// 2:3
// 3:4
// 4:5
}