ループ

繰り返し処理にはloopwhileforがあります。

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
}