for文とは
for 文は、変数を変化させながら繰り返し処理を行いたいときに利用する制御構造の一つです。もっとも代表的な記述は、次のようなものです。
let sum=0;
for (let i=0 ; i<10 ; i++) {
// 繰り返し処理
sum = sum + i;
}
// sum は、0~9 の合計になる。i=10は実行されない点に注意しよう。
この例では、次のように処理が進みます。
- i に 0 を代入します。
- ブロック内の繰り返し処理を実行します。
この例だと、sum に i を加算します。 - i++ つまり、iを+1します。
- i<10 がtrueかどうかを判定します。
- trueなら、2 に戻ります。
- false なら for ループを終わります。
初期化、繰り返し判定、繰り返し処理は省略可能
for 文の セミコロンで区切ったそれぞれのフィールドは省略することもできます。例えば、次のようなものです。
let sum=0,i=0;
for (; i<10 ; i++) {
// 繰り返し処理
sum = sum + i;
}
let sum=0,i=0;
for (;; i++) {
// 繰り返し処理
sum = sum + i;
if (i<10) break;
}
このようなfor文は、意図通りに動きます。ただ、このようなfor文は書くべきではないでしょう。for 文の初期化、繰り返し判定、繰り返し処理はfor文の処理の意図を明確に書くべきです。できるだけシンプルに、読んでわかりやすいコードを書きましょう。
次のように、複数の変数を扱うときには、カンマを使います。
let sum=0;
for (let i=0,j=9 ; i<10 ; i++,j--) {
// 繰り返し処理
sum = sum + i + j;
}
// sum は、0+9 ~ 9+0 の合計になる。
for 文にはこのような基本的な記述以外に、for (in)、for (of) による記述法があります。
注
この記事は、ECMAScript 2015(ES6) を前提に書いています。古い実装では、異なる場合があります。