制御構造
条件分岐
if 文
条件によって実行する処理を切り替えたい場合には、 if 文を使います。
if文の基本的な文法は次の通りです:
if (〈条件式〉) {
〈条件式が真の場合の処理〉
} else {
〈条件式が偽の場合の処理〉
}
(注:〈条件式が〜の場合の処理〉の前後の { }
は、処理が一つの文の場合は省略できますが、この記事では省略しないことにします。)
条件式が偽の場合に処理を実行しない場合は、 else 節を省略できます:
if (〈条件式〉) {
〈条件式が真の場合の処理〉
}
例:
let a = 123;
if (a > 10) {
console.log("a is larger than 10.");
} else {
console.log("a is not larger than 10.");
}
発展:条件式
条件式には、通常は真理値 (boolean; true
と false
のこと) を指定するかと思いますが、実は任意の JavaScript の値を指定することができます。
JavaScriptの値のうち、次の7つは「偽」として取り扱われます:
undefined
, null
, false
, +0
, -0
, NaN
, ""
(空文字列)
それ以外の全ての値は「真」として取り扱われます。
switch 文
(未執筆)
繰り返し(ループ)
while 文
while 文は、条件が成り立つ間処理を繰り返します。
while 文の文法は次の通りです:
while (〈条件式〉) {
〈処理〉
}
例:
let i = 0; // カウンター変数
while (i < 10) { // i が 10 より小さい間は処理を繰り返す
console.log(i); // i を出力する
i++; // i を 1 増やす
}
実行結果:
0
1
2
3
4
5
6
7
8
9
for 文
for 文も while 文と同じように、処理の繰り返しに使います。while 文と異なるのは、変数の宣言やループ変数の操作を一緒に書くことができる点です。
while 文の例に挙げたプログラムと等価なものを for 文で書くと、次のようになります:
for (let i = 0; i < 10; i++) {
console.log(i);
}
for 文の文法は次のようになります:
for (〈初期化〉;〈条件式〉;〈変数を更新する式〉) {
〈処理〉
}
〈初期化〉の部分には変数宣言か、式を書きます。省略することもできます。
〈条件式〉の部分は while 文と同様ですが、省略することもできます(省略した場合は true になります)。
〈変数を更新する式〉の部分は、〈処理〉が終わった後に実行されます(省略可能です)。主にカウンター変数の更新に使われることが多いですが、実際は任意の式を書けるので、上記のプログラムと同じものを
for (let i = 0; i < 10; console.log(i), i++) {
}
と書くこともできます。
〈初期化〉、〈条件式〉、〈変数を更新する式〉のいずれも省略可能で、全てを省略して for(;;)
とした場合は、ただの無限ループになります。
繰り返しの中断:break と continue
繰り返し処理を途中で中断したい場合は、 break 文を使います。while 文と for 文のどちらでも使うことができます。
例:
for (let i = 0; ; i++) {
if (i >= 10) {
break; // ループから脱出
}
console.log(i)
}
処理をスキップしたい場合は、 continue 文を使います。〈処理〉は中断されますが、〈変数を更新する式〉は通常通り実行されます。
例:
for (let i = 0; i < 10; i++) {
if (i % 3 === 0) { // i が3の倍数の時は...
continue; // 処理を行わない
}
console.log(i);
}