5. JavaScript入門 (制御構造)
制御構造とは
JavaScriptにおける制御構造は、プログラムの流れを制御するために使用されます。これには条件分岐やループなどが含まれ、プログラムの実行をより柔軟に制御できます。以下に主要な制御構造を解説します。
条件分岐
-
if文
- 条件が真(true)の場合にのみ、特定のコードブロックを実行します。
if (condition) { // 条件が真の場合に実行されるコード }
-
if-else文
- 条件が真の場合は一つのコードブロックを、偽の場合は別のコードブロックを実行します。
if (condition) { // 条件が真の場合に実行されるコード } else { // 条件が偽の場合に実行されるコード }
-
else if文
- 複数の条件をチェックし、最初に真と評価されたブロックのコードを実行します。
if (condition1) { // 条件1が真の場合に実行されるコード } else if (condition2) { // 条件1が偽で条件2が真の場合に実行されるコード } else { // どの条件も真でない場合に実行されるコード }
-
switch文
- 多くの条件を比較する場合に有用です。式の結果に基づいて、多数のコードブロックのうちの一つを実行します。
switch (expression) { case value1: // 式がvalue1と等しい場合に実行されるコード break; case value2: // 式がvalue2と等しい場合に実行されるコード break; default: // どのcaseもマッチしない場合に実行されるコード }
ループ
-
for文
- 特定の回数だけコードブロックを繰り返し実行します。
for (initialization; condition; increment) { // 繰り返し実行されるコード }
-
while文
- 条件が真の間、コードブロックを繰り返し実行します。
while (condition) { // 繰り返し実行されるコード }
-
do-while文
- コードブロックを少なくとも一回実行し、その後条件が真の間繰り返します。
do { // 繰り返し実行されるコード } while (condition);
-
for...in文
- オブジェクトのすべての列挙可能なプロパティに対してループを実行します。
for (let property in object) { // 各プロパティに対して実行されるコード }
-
for...of文
- 反復可能なオブジェクト(例えば、Array、Map、Setなど)を通じてループを実行します。
for (let element of iterable) { // 各要素に対して実行されるコード }
これらの制御構造を適切に組み合わせることで、プログラムのロジックを柔軟かつ効率的に記述できます。それぞれの使用場面や目的に応じて適切な制御構造を選ぶことが重要です。
サンプルコード
条件分岐
-
if文
let score = 85; if (score > 80) { console.log('合格です!'); }
-
if-else文
let score = 75; if (score > 80) { console.log('合格です!'); } else { console.log('不合格です...'); }
-
else if文
let score = 85; if (score >= 90) { console.log('優秀!'); } else if (score > 80) { console.log('合格!'); } else { console.log('不合格...'); }
-
switch文
let fruit = 'apple'; switch (fruit) { case 'banana': console.log('バナナが選ばれました。'); break; case 'apple': console.log('りんごが選ばれました。'); break; case 'orange': console.log('オレンジが選ばれました。'); break; default: console.log('その他の果物です。'); }
ループ
-
for文
for (let i = 0; i < 5; i++) { console.log('繰り返し回数: ' + i); }
-
while文
let i = 0; while (i < 5) { console.log('繰り返し回数: ' + i); i++; }
-
do-while文
let i = 0; do { console.log('繰り返し回数: ' + i); i++; } while (i < 5);
-
for...in文
let person = {firstName: '太郎', lastName: '山田'}; for (let key in person) { console.log(key + ': ' + person[key]); }
-
for...of文
let fruits = ['バナナ', 'りんご', 'オレンジ']; for (let fruit of fruits) { console.log(fruit); }