通常繰り返しにはfor文、while文、loop文を使用する。
fn main(){ for i in 0..10 { println!("{}の2乗は{}", i, i*i); } }
if文と同様に結果を返すことができる
fn main(){ let x = for i in 0..10 { println!("{}の2乗は{}", i, i*i); }; println!("{:?}", x); }
for文の中にfor文を記述するネストもできる。
fn main(){ for i in 0..10 { let mut v = 1; for j in 2..=i{ v = v * j } println!("{}の階乗は{}", i, v); }; }
breakを使って繰り返し処理を終了することができる
fn main(){ for i in 0..10 { if i > 5 { break } println!("{}", i); }; }
ラベルは先頭を単一引用符(‘)にする
fn main(){ 'looptop: for i in 0..4 { for j in 0..4 { if i == 1 && j == 2 { break 'looptop; } println!("{} {}", i, j); } } }
forループの中でcontinueを使うことで以降のコードを実行せずにループの先頭に戻ることができる。
fn main(){ for i in 0..10 { if i % 2 == 0 { continue } println!("{}", i); } }
配列の繰り返し
fn main(){ let fruits = ["りんご", "みかん", "バナナ"]; for x in fruits.iter(){ println!("{}", x); } }
ベクターでも同じようにイテレータを使うことができる
fn main(){ let fruits = vec!["りんご", "みかん", "バナナ"]; for x in fruits.iter(){ println!("{}", x); } }
3回出力する場合
fn main(){ for _i in 1..4 { println!("Hello!"); } }
fn main(){ for _ in 1..4 { println!("Hello!"); } }
While文
fn main(){ let mut i = 0; while i < 10 { println!("{}", i); i = i + 1; } }
fn main(){ let mut i = 0; loop { println!("{}", i); i = i + 1; if i > 5 { break; } } }
無限ループはbreakでループから抜けるか std::process::exit(1);で終了する