条件演算子のネストとは?
条件演算子(?:)は、シンプルな条件分岐を1行で記述できる便利な演算子です。さらに、複数の条件を評価するために、条件演算子をネストして使うことも可能です。ネストとは、1つの条件演算子の中に、別の条件演算子を含めることです。これにより、複数の条件を1つの表現で記述することができます。
基本的な条件演算子のネスト例
次に、条件演算子をネストして、複数の条件を評価する例を見てみましょう。
let score = 85;
let grade = score >= 90 ? "A" :
score >= 80 ? "B" :
score >= 70 ? "C" :
"F";
console.log(grade); // "B"
この例では、スコアに応じて評価が決定されます。90以上であれば「A」、80以上であれば「B」、70以上であれば「C」、それ以外は「F」という評価になります。このように、条件演算子をネストすることで、1つの式で複数の条件を扱うことができます。
ネストされた条件演算子の仕組み
条件演算子のネストは、次のような構造になっています。
条件1 ? 結果1 : 条件2 ? 結果2 : 条件3 ? 結果3 : 結果4;
最初の条件がtrueであれば結果1が返され、falseの場合には次の条件が評価されます。このように、連続して条件を評価していき、最終的な結果を得ることができます。
ネストされた条件演算子の例とif文との比較
次に、ネストされた条件演算子とif文を使った同じ条件分岐を比較してみます。
// 条件演算子のネスト
let score = 75;
let grade = score >= 90 ? "A" :
score >= 80 ? "B" :
score >= 70 ? "C" :
"F";
// if文で同じ条件を記述
let grade2;
if (score >= 90) {
grade2 = "A";
} else if (score >= 80) {
grade2 = "B";
} else if (score >= 70) {
grade2 = "C";
} else {
grade2 = "F";
}
console.log(grade); // "C"
console.log(grade2); // "C"
この例では、条件演算子を使うことで1行で条件分岐を実現していますが、if文では複数行のコードが必要です。条件がシンプルであれば条件演算子の方が効率的ですが、複雑な条件式ではif文を使った方が可読性が向上する場合があります。
ネストされた条件演算子の注意点
条件演算子をネストすることで、複数の条件を1行で記述できますが、コードが複雑になると可読性が低下する可能性があります。ネストされた条件が多くなる場合や、条件自体が複雑になる場合は、if文を使用する方が分かりやすくなることが多いです。
条件演算子のネストを使うべき場面
条件演算子のネストは、次のような場面で役立ちます。
- シンプルな複数条件の評価を1行で記述したい場合
- 条件式が短く、わかりやすい場合
- 関数の戻り値として簡単に条件を評価したい場合
逆に、複雑な条件を扱う場合や、複数の処理を行う場合はif文を使う方が適しています。
if文のほうが可読性が高いため、原則、if文を使うほうがよいでしょう。
まとめ
条件演算子のネストを使うことで、複数の条件を簡潔に記述することができます。ただし、条件が多くなると可読性が低下するため、適切な場面で使うことが重要です。簡単な条件分岐には条件演算子を、複雑な条件にはif文を使い分けることで、コードを効率的かつわかりやすく保つことができます。