JavaScript | 基礎構文:条件分岐 – 複雑な条件式

JavaScript JavaScript
スポンサーリンク

複雑な条件式とは何か

「複雑な条件式」とは、単純な if (x > 10) のような一つの条件ではなく、複数の条件を組み合わせて判定する式のことです。例えば「年齢が18歳以上 かつ 会員である」や「入力が空文字 または null」のように、論理演算子(AND, OR, NOT)を組み合わせて書きます。


AND(&&)と OR(||)の組み合わせ

複雑な条件式では AND と OR を組み合わせることが多いです。

  • AND(&&)は「両方が真なら真」
  • OR(||)は「どちらかが真なら真」
const age = 20;
const isMember = true;

if (age >= 18 && isMember) {
  console.log("成人の会員です");
}

const input = "";
if (input === "" || input === null) {
  console.log("入力が空です");
}
JavaScript

NOT(!)を加えた複雑な条件

否定を組み合わせるとさらに複雑になります。例えば「ログインしていない、または権限がない場合はアクセス拒否」といった条件です。

const loggedIn = false;
const isAdmin = false;

if (!loggedIn || !isAdmin) {
  console.log("アクセスできません");
}
JavaScript

優先順位と括弧の活用

論理演算子には優先順位があります。! が最優先、次に &&、最後に ||。複雑な条件では括弧を使って意図を明確にしましょう。

const age = 17;
const isMember = true;
const hasTicket = false;

if ((age >= 18 && isMember) || hasTicket) {
  console.log("入場できます");
} else {
  console.log("入場できません");
}
JavaScript

この例では「成人かつ会員」または「チケットを持っている」なら入場可能です。


実用例で理解する

例題1:試験合格と特典

const score = 85;
const isMember = true;

if (score >= 60 && (isMember || score >= 90)) {
  console.log("合格+特典あり");
} else {
  console.log("条件を満たしていません");
}
JavaScript

「60点以上かつ(会員または90点以上)」なら特典付き合格です。


例題2:ログインと権限チェック

const loggedIn = true;
const role = "user";

if (loggedIn && (role === "admin" || role === "editor")) {
  console.log("編集ページにアクセスできます");
} else {
  console.log("権限がありません");
}
JavaScript

ログイン済みで、管理者か編集者ならアクセス可能です。


例題3:入力値の検証

const value = "";

if (value === null || value === "" || Number.isNaN(Number(value))) {
  console.log("不正な入力です");
} else {
  console.log("有効な入力です");
}
JavaScript

null、空文字、数値変換できない場合は「不正」と判定します。


注意点とコツ

条件を整理する

複雑な条件は一度に書くと読みにくくなります。部分的に変数へ切り出すと理解しやすくなります。

const isAdult = age >= 18;
const canEnter = isAdult && isMember;

if (canEnter) {
  console.log("入場できます");
}
JavaScript

読みやすさを優先する

短く書けても、意図が伝わらない条件式はバグの原因になります。括弧や変数名を使って「何を判定しているか」を明確にしましょう。


まとめ

  • 複雑な条件式は AND(&&)、OR(||)、NOT(!)を組み合わせて書く。
  • 優先順位は「! → && → ||」なので、括弧で意図を明示する。
  • 実用例:合格判定、権限チェック、入力検証など。
  • 読みやすさを意識して変数に切り出すと理解しやすくなる。

初心者は「複雑な条件は段階的に分けて考える」と覚えるとスムーズに理解できます。

タイトルとURLをコピーしました