JavaScriptの条件式で複雑な条件をまとめる書き方例
生徒
「先生、JavaScriptの条件式で複数の条件があるとき、どうやってまとめて書けばいいですか?」
先生
「複雑な条件をまとめるには、論理演算子を使います。簡単に言うと、『かつ』や『または』の関係をコードで表す方法です。」
生徒
「論理演算子ってどんなものですか?難しそうです…」
先生
「論理演算子は、条件をつなげるための記号で、よく使うのは &&(かつ)と ||(または)です。順に見ていきましょう。」
生徒
「それぞれどういう意味ですか?」
先生
「&& は『両方の条件が真のときだけ真』、|| は『どちらかの条件が真なら真』という意味です。」
生徒
「実際にどんな風に使うんでしょう?」
先生
「具体例を交えて説明しますね!」
1. 複数の条件を「かつ」でまとめる(&&)
例えば、年齢が18歳以上かつ会員であるかを判定したい場合、条件は両方とも満たす必要があります。
let age = 20;
let isMember = true;
if (age >= 18 && isMember) {
console.log("18歳以上の会員です。");
} else {
console.log("条件を満たしていません。");
}
この場合、年齢が18歳以上で isMember が true の時だけ、メッセージが表示されます。
2. 複数の条件を「または」でまとめる(||)
次に、年齢が18歳以上、または保護者の許可がある場合に通れる条件を考えてみます。どちらか一方でも当てはまればOKです。
let age = 16;
let hasPermission = true;
if (age >= 18 || hasPermission) {
console.log("入場可能です。");
} else {
console.log("入場できません。");
}
この例では、16歳でも hasPermission が true なら通れます。
3. 複雑な条件を組み合わせるときは括弧()でグループ化
条件が複雑になるときは、括弧を使って分かりやすくグループ分けします。そうすることで、どの条件がどのように評価されるかを明確にできます。
let age = 20;
let isMember = false;
let hasInvitation = true;
if ((age >= 18 && isMember) || hasInvitation) {
console.log("入場できます。");
} else {
console.log("入場できません。");
}
この場合、「年齢が18歳以上かつ会員」か、「招待状がある」なら入場可能と判定します。
4. 否定(!)を使って条件を逆にする
条件を逆にしたいときは、否定演算子 ! を使います。例えば、会員でない人を判定するときに便利です。
let isMember = false;
if (!isMember) {
console.log("会員ではありません。");
} else {
console.log("会員です。");
}
ここでは、isMember が false のときに「会員ではありません」と表示されます。
5. 複雑な条件を分かりやすく書くコツ
条件式が長くなると読みにくくなるので、次のポイントを意識しましょう。
- 適度に括弧を使い、条件のまとまりをはっきりさせる
- 必要なら変数に条件の結果を入れてから判定する
- コメントで何を判定しているか説明を書く
// 年齢が18歳以上かつ会員か、または招待状を持っているか
let canEnter = (age >= 18 && isMember) || hasInvitation;
if (canEnter) {
console.log("入場可能です。");
} else {
console.log("入場できません。");
}
こう書くと、条件の意味がすぐわかり、コードもすっきりします。
6. よくある条件の組み合わせ例
実際によく使う条件のまとめ方をいくつか紹介します。
- 複数の値のどれかに当てはまるか調べる:
if (color === "赤" || color === "青" || color === "黄") - 年齢や資格、状態をすべて満たすか:
if (age >= 20 && hasLicense && isActive) - 否定を交えた条件:
if (!(status === "退会"))
これらを使って必要な条件を自由に作りましょう。
7. 最後に注意したいポイント
複雑な条件式を書くときは、論理演算子の優先順位に注意しましょう。括弧を使うと優先順位を明確にできるので、必ず使うクセをつけると良いです。
また、条件が長くなる場合は関数や変数に処理を分けて読みやすくする工夫をしましょう。