繰り返し処理には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
}