【JavaScript】if文による条件分岐の完全ガイドとベストプラクティス

目次

概要

プログラムにおいて「もし〜ならA、そうでなければB」という判断ロジック(条件分岐)は、最も基本的かつ重要な制御構造です。 JavaScriptの if 文を使用することで、変数の値やユーザーの操作に応じて処理を振り分けることができます。 本記事では、基本的な if...else 構文から、複数の条件を扱う else if、そして乱数を使用した動的な分岐処理までを解説します。

仕様(入出力)

  • 入力:
    1. 判定対象となる数値(例: テストの点数)
    2. システムが生成する乱数
  • 出力: 条件判定に基づいた結果メッセージ(コンソールログ)

基本の使い方

if (条件式) { 条件が真の時の処理 } が最小構成です。 条件が満たされない場合の処理を追加するには else { ... } を、さらに別の条件を追加するには else if (条件式) { ... } を繋げます。

コード全文(HTML / JavaScript)

HTML (index.html)

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>条件分岐デモ</title>
    <script src="conditional-logic.js" defer></script>
</head>
<body>
    <div class="container">
        <h1>Consoleを確認してください</h1>
        <p>条件分岐の結果がログに出力されています。</p>
    </div>
</body>
</html>

JavaScript (conditional-logic.js)

テストの点数判定ロジックと、乱数を使った簡易的な運勢判定ロジックです。

/**
 * 1. 基本的な多段階分岐 (if - else if - else)
 * テストの点数に応じて評価を出力します。
 */
const checkScore = () => {
    // 判定対象の点数(ここを書き換えて試せます)
    const score = 75;

    console.log(`現在の点数: ${score}`);

    if (score >= 80) {
        // 条件1: 80点以上の場合
        console.log("評価: A (素晴らしい!)");

    } else if (score >= 60) {
        // 条件2: 80点未満 かつ 60点以上の場合
        console.log("評価: B (合格です)");

    } else {
        // 条件3: 上記のどの条件にも当てはまらない場合(60点未満)
        console.log("評価: C (再試験が必要です)");
    }
};

checkScore();


/**
 * 2. 乱数を使った動的な分岐
 * 実行するたびに結果が変わる運勢プログラムです。
 */
const drawOmikuji = () => {
    // 0以上10未満のランダムな小数を生成
    const randomNum = Math.random() * 10;
    
    console.log(`--- おみくじ結果 (数値: ${randomNum.toFixed(2)}) ---`);

    if (randomNum >= 8) {
        console.log("大吉!今日は良いことがあります。");
    } else if (randomNum >= 4) {
        console.log("中吉。穏やかな一日でしょう。");
    } else {
        console.log("小吉。足元に注意しましょう。");
    }
};

drawOmikuji();


/**
 * 3. 省略記法(波括弧なし)
 * 処理が1行だけの場合、{} を省略可能ですが、可読性の観点から注意が必要です。
 */
const isSystemActive = true;

// 1行で書くスタイル
if (isSystemActive) console.log("システムは正常に稼働しています(省略記法)");

カスタムポイント

  • 判定順序の重要性: if 文は上から順番に評価され、一度条件に合致するとそれ以降の else if は無視されます。 例えば、score >= 60 を先に書いてしまうと、80点以上でもそこで止まってしまうため、範囲の狭い条件(厳しい条件)から順に記述するのが鉄則です。
  • 論理演算子の活用: if (age >= 18 && hasTicket) のように、&&(かつ)や ||(または)を使うことで、複数の条件を一度に判定できます。

注意点

  1. 代入演算子との混同: 条件式の中で if (x = 10) と書いてしまうと、比較ではなく「代入」が行われ、常に true(または値そのもの)として評価されてしまいます。必ず if (x === 10) とイコールを3つ(厳密等価)記述してください。
  2. 波括弧 {} の省略: 処理が1行だけなら {} を省略できますが、後から処理を追加した際にバグの原因になりやすいため、基本的には常に {} を書くことを推奨します。
  3. 変数のスコープ: if ブロックの中で constlet で宣言した変数は、ブロックの外側では使えません。

応用

三項演算子による短縮

単純な if...else の代入処理は、三項演算子を使うと1行で記述できます。

const age = 20;
// 条件 ? 真の場合の値 : 偽の場合の値
const message = age >= 20 ? "お酒が飲めます" : "お酒は二十歳になってから";

console.log(message);

まとめ

if 文はプログラミングの思考そのものです。「どのような条件の時に、何を実行するか」を整理し、漏れのない分岐を作ることがバグのないアプリケーション開発への第一歩となります。まずは基本の if - else if - else の形をマスターしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次