条件文(if, else, switch)について

条件文は、プログラムの実行フローを制御するために使用される重要な構文です。
JavaScriptでは、主に if, else if, else, および switch の4つの構文が条件分岐に使用されます。
このセクションでは、各条件文の使い方とその応用について詳しく説明します。

if

if文は、指定された条件が真(true)である場合にブロック内のコードを実行するための構文です。

基本的な構文

if (条件) {
// 条件が真の場合に実行されるコード
}

使用例

let age = 20;
if (age >= 18) {
console.log("You are an adult.");
}

この例では、変数 age が18以上の場合に「You are an adult.」というメッセージが表示されます。

else

else文は、if文の条件が偽(false)である場合に実行されるブロックを定義します。

基本的な構文

if (条件) {
// 条件が真の場合に実行されるコード
} else {
// 条件が偽の場合に実行されるコード
}

使用例

let age = 16;
if (age >= 18) {
console.log("You are an adult.");
} else {
console.log("You are not an adult.");
}

この例では、変数 age が18未満の場合に「You are not an adult.」というメッセージが表示されます。

else if

else if文は、複数の条件をチェーンで評価するために使用されます。if文の条件が偽の場合に、次の条件を評価します。

基本的な構文

if (条件1) {
// 条件1が真の場合に実行されるコード
} else if (条件2) {
// 条件2が真の場合に実行されるコード
} else {
// すべての条件が偽の場合に実行されるコード
}

使用例

let score = 75;
if (score >= 90) {
console.log("Grade: A");
} else if (score >= 80) {
console.log("Grade: B");
} else if (score >= 70) {
console.log("Grade: C");
} else if (score >= 60) {
console.log("Grade: D");
} else {
console.log("Grade: F");
}

この例では、変数 score に応じて異なるメッセージが表示されます。

switch

switch文は、特定の値に基づいて複数のケースの中から1つを選択して実行するための構文です。switch文は、特定の値を持つ複数のケースを評価し、一致するケースのブロックを実行します。

基本的な構文

switch (式) {
case 値1:
// 式が値1に一致する場合に実行されるコード
break;
case 値2:
// 式が値2に一致する場合に実行されるコード
break;
// 必要に応じて他のケースを追加
default:
// どのケースとも一致しない場合に実行されるコード
}

使用例

let day = 3;
switch (day) {
case 1:
console.log("Monday");
break;
case 2:
console.log("Tuesday");
break;
case 3:
console.log("Wednesday");
break;
case 4:
console.log("Thursday");
break;
case 5:
console.log("Friday");
break;
case 6:
console.log("Saturday");
break;
case 7:
console.log("Sunday");
break;
default:
console.log("Invalid day");
}

この例では、変数 day の値に応じて異なる曜日が表示されます。

if-elseswitch の違い

if-else文とswitch文はどちらも条件分岐を行いますが、いくつかの違いがあります。

  • 可読性: switch文は複数の条件を評価する場合に可読性が高いです。
    特に、同じ変数を複数の値と比較する場合に有効です。
  • 範囲の評価: if-else文は、範囲や複雑な条件を評価するのに適しています。
    一方、switch文は特定の値との一致を評価するのに適しています。
  • 型の一致: switch文は厳密な型の一致を評価します。
    if-else文は、型の変換を伴う条件評価も可能です。

ネストされた条件文

条件文はネスト(入れ子)にすることができます。
ネストされた条件文を使用すると、複雑な条件評価を行うことができます。

使用例

let num = 10;
if (num > 0) {
if (num % 2 === 0) {
console.log("The number is positive and even.");
} else {
console.log("The number is positive and odd.");
}
} else {
if (num === 0) {
console.log("The number is zero.");
} else {
console.log("The number is negative.");
}
}

この例では、変数 num の値に応じて異なるメッセージが表示されます。

条件文のパフォーマンス

条件文のパフォーマンスは、コードの効率に影響を与えることがあります。
特に多くの条件を評価する場合、適切な条件文を選択することが重要です。

  • 単純な条件: 簡単な条件評価には if-else文が適しています。
  • 複数の値との一致: 多くの値と一致を評価する場合、switch文がパフォーマンスに優れています。

使用例

let fruit = "apple";
if (fruit === "apple") {
console.log("It's an apple.");
} else if (fruit === "banana") {
console.log("It's a banana.");
} else if (fruit === "cherry") {
console.log("It's a cherry.");
} else {
console.log("It's some other fruit.");
}

// switch文による同等の評価
switch (fruit) {
case "apple":
console.log("It's an apple.");
break;
case "banana":
console.log("It's a banana.");
break;
case "cherry":
console.log("It's a cherry.");
break;
default:
console.log("It's some other fruit.");
}

短絡評価(Short-circuit Evaluation)

論理演算子 &&|| は短絡評価を行います。
これは、左側の条件が結果を決定する場合、右側の条件を評価しないという特性です。

使用例

let x = 0;
if (x && (10 / x) > 1) {
console.log("This won't be logged due to short-circuit evaluation.");
}

let y = null;
let name = y || "default name";
console.log(name); // "default name"

この例では、短絡評価によって無駄な計算を避けています。

条件演算子(三項演算子)

条件演算子は、簡潔に条件分岐を行うための演算子です。
if-else文の短縮形として使用されます。

基本的な構文

条件 ? 式1 : 式2

使用例

let age = 20;
let canVote = (age >= 18) ? "Yes" : "No";
console.log(canVote); // "Yes"

この例では、変数 age が18以上の場合に “Yes” が、それ以外の場合に “No” が返されます。

まとめ

条件文は、JavaScriptプログラムの制御フローを柔軟に管理するための基本的なツールです。
if, else if, else, および switch文を理解し、適切に使用することで、
複雑な条件分岐を効果的に実装できます。
各条件文の特性と使い方をマスターすることで、
より効率的で読みやすいコードを書くことが可能になります。
これらのスキルは、JavaScriptプログラミングの基礎を築き、
より高度なプログラムを作成するための重要なステップとなります。