通常繰り返しには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);で終了する