JavaScript - 繰り返し処理の書き方

while 文

while 文は指定された条件が true に評価される限り文を実行します。以下の例では n3 未満の場合繰り返されます。

let n = 0;
while (n < 3) {
  n++;
}

do...while 文

do...while 文は指定された条件が false になるまで繰り返します。do...while 文は条件式がチェックされる前に一度実行されます。条件が true の場合、再び実行されます。すべての実行終了時に条件がチェックされ、条件が false の場合、実行は停止します。

以下の例では do ループは少なくとも一度繰り返されます。そして i5 未満でなくなる直前まで繰り返しされます。

let i = 0;
do {
  i += 1;
} while (i < 5);

for 文

for 文によるループは指定された条件が false と評価されるまで繰り返されます。for 文の構文は以下のとおりです。。

for ([初期化式]; [条件式]; [更新式]){
  文
}
  1. もしも初期化式があれば実行されます。この式は 1 個、またはそれ以上のループカウンタを初期化しますが、この構文ではいかなるレベルの複雑な式を入れることが可能です。初期化式で変数を宣言することもできます。
  2. 条件式が評価されます。条件式の値が true の場合、ループ文が実行されます。条件式の値が false の場合、for ループは終了します。条件式がすべて省略されている場合、条件式は true であると仮定されます。
  3. 文が実行されます。複数の文を実行するには、それらの文をグループ化するためにブロック文 { ... } を使用します。
  4. もしも更新式があれば実行されます。
  5. ステップ 2 に制御が戻ります。
for(let i = 0; i < 3; i++){
    console.log(i);
}

/* 実行結果
0
1
2
*/

for...in 文

for...in 文はオブジェクトにあるすべての列挙可能なプロパティに対し指定された変数を通して反復処理を行います。それぞれの異なるプロパティに JavaScript は指定された文を実行します。

let o = { x:1, y:2};

for(let p in o){                 // o のプロパティ名を変数 p に代入する。
    console.log(p + ":" + o[p]); // 各プロパティの値を出力する。
}

/* 実行結果
x:1
y:2
*/

for...of 文

for...of 文は、反復可能オブジェクト(ArrayMapSetarguments オブジェクトなどを含む)を反復処理するループを生成し、それぞれのプロパティの値に対して実行したい文をともなって作られた反復処理フックを呼び出します。

let arr = [3, 5, 7];

for (let i of arr) {
   console.log(i);
}

/* 実行結果
3
5
7
*/

for...in はプロパティ名に対し反復処理される一方、for...of はプロパティの値に対し反復処理します。

let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i);
}

/* 実行結果
0
1
2
foo
*/

for (let i of arr) {
   console.log(i);
}

/* 実行結果
3
5
7
*/

関連記事

Category:
プログラミング
公開日:
更新日:
Pageviews:
29
Shares:
1
Tag:
JavaScript
コードレシピ