LoginSignup
0
0

More than 3 years have passed since last update.

繰り返し

Posted at

繰り返し

Rustで繰り返しを実装する手段は以下の3つがあります。

キーワード 説明
loop 無限ループ
while 条件がtrueならループ
for イテレータを使ったループ

loop

loopは無限ループです。
以下のコードは無限に「無限ループです。」と表示し続けます。
実行したらCtrl + Cで止めましょう。

fn main() {
    loop{
        println!("無限ループです。");
    }
}

while

whileは指定した条件式によって繰り返しを制御します。以下のように書きます。
while 繰り返し条件 { 繰り返す処理 }
繰り返し条件はbool型を返す式です。条件の真理値によって以下のように動作します。

  • trueの場合 → カッコ内の処理を実行する。その後、再び条件式を評価する(繰り返し)。
  • falseの場合 → 処理を実行せず、次の処理に移る。

条件がtrueの間ループし続けます。

fn main() {
    let mut count = 1;

    //条件式(count < 10)を評価し、trueならカッコの中身を実行する。
    while count < 10 {
        println!("count = {}",count);
        count += 1;
        //ここまで実行したら再び条件式を判定する。
    }
}

実行結果

count = 1
count = 2
count = 3
count = 4
count = 5
count = 6
count = 7
count = 8
count = 9

for

forはイテレータを用いる繰り返しです。イテレータとはチェーンのように連なるデータで、データを順番に生成することが出来ます。forは対象となるデータをイテレータに変換し、イテレータからデータを一つずつ取り出して変数に束縛して何らかの処理をします。
forループの書き方は以下の通りです。
for 変数 in イテレータに変換可能なデータ { 繰り返す処理 }
以下のように使うことが出来ます。

fn main() {
    //決まった回数の繰り返し。
    //1..10は1から9までの数値を順番に生成する。
    for count in 1..10 {
        println!("count = {}",count);
    }

    //Vecの各要素に対して1回ずつ処理を行う。
    //Vecはイテレータに変換可能。
    let name_list = vec!["太郎","花子","一郎","清"];
    for name in name_list {
        println!("私の名前は{}です。",name);
    }
}

上記の例では2つのforループがあります。
一つは決まった回数の繰り返しです。繰り返しの回数を1..10と指定しています。これで1から9までの数値を順番に生成することが出来、9回の繰り返しとなります。
もう一つはベクタの各要素に対して処理を繰り返し行うためにforを使用しています。name_listは4つの要素を持つベクタであり、これをイテレータにすると要素を4回生成するイテレータになります。繰り返しの各過程では、nameにname_listの各要素が順番に束縛されます。

実行結果

count = 1
count = 2
count = 3
count = 4
count = 5
count = 6
count = 7
count = 8
count = 9
私の名前は太郎です。
私の名前は花子です。
私の名前は一郎です。
私の名前は清です。

目次

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0