【2026年8月最新】JavaScriptのif文とは?条件分岐の考え方・else ifの使い方からClaude Codeでの業務ルール実装まで
「在庫が10個を切ったら自動で発注する」「売上目標を達成した月だけボーナスを支給する」「問い合わせフォームで、法人メールアドレスの場合だけ営業担当に通知する」——こうした「もし〇〇なら、こうする。そうでなければ、ああする」という判断ルールは、業種を問わずあらゆる業務に存在します。
実はこの「もし〇〇なら」という判断の仕組みは、プログラミングの世界ではif文(条件分岐)と呼ばれ、JavaScriptをはじめほぼすべてのプログラミング言語に共通して存在する最も基本的な部品です。Webサイトの入力チェック、業務システムの承認フロー、Excelマクロの自動判定——裏側では必ずと言っていいほどif文が動いています。
この記事を最後まで読むと、次の内容が理解できます。
01 WHAT IS IF STATEMENT if文とは何か・条件分岐を「業務ルール」で理解する 「もし〇〇なら」という判断を、プログラムに書き下したもの
if文とは、「ある条件が成り立つかどうかによって、実行する処理を切り替える」ためのプログラミングの基本構文です。英語の「if(もし)」が示すとおり、「もしこの条件が真(true)なら、この処理をする」という判断をコードとして表現します。
📚 用語解説
if文:「もし条件Aが成り立つなら処理Xを実行する」という条件分岐を書くための構文。JavaScriptに限らず、Python・VBA・Javaなどほぼ全てのプログラミング言語に存在する最も基本的な制御構文の一つ。条件が成り立たない場合の処理は else(そうでなければ)で追加できる。
📚 用語解説
条件分岐:プログラムの実行結果を、ある条件の真偽(trueかfalseか)によって変える仕組み全般を指す言葉。if文はその代表例だが、switch文や三項演算子(?:)も条件分岐の一種。業務の世界では「承認ルール」「割引条件」「入力チェック」など、判断が発生する場面すべてに条件分岐が潜んでいる。
業務の場面に置き換えると分かりやすくなります。たとえば在庫管理の担当者は、日々こんな判断をしているはずです。
確認する
現在の在庫は
何個か
なら
発注処理を
実行する
何もせず
据え置く
この「在庫数を確認する→もし10個未満なら発注する→そうでなければ何もしない」という一連の判断を、JavaScriptで書くとおおよそ次のようになります。
// 業務ルール:在庫が10個未満なら発注する
let stockCount = 7;
if (stockCount < 10) {
console.log("発注処理を実行します");
} else {
console.log("在庫は十分です。処理はありません");
}
// 実行結果: "発注処理を実行します"(stockCountが7で10未満のため)
コードの構造自体は難しくありません。if(もし)の後ろの丸括弧「()」に条件式を書き、波括弧「{}」の中に条件が成り立ったときの処理を書きます。elseを続けると「条件が成り立たなかった場合の処理」を追加できます。
いきなりコードを書こうとせず、まず「もし在庫が10個未満なら発注する、そうでなければ何もしない」のように、自分の業務ルールを日本語の文章で書き出してみてください。この文章がそのままif文の設計図になります。この考え方は、後述するClaude Codeへの依頼の仕方にも直結します。
02 BASIC SYNTAX if文の書き方:条件式・比較演算子・実行順序 条件式に使う「比較演算子」の種類と、評価される順番
if文の条件式には、多くの場合「比較演算子」と呼ばれる記号を使って、2つの値を比較します。JavaScriptで使われる代表的な比較演算子は以下のとおりです。
📚 用語解説
比較演算子:2つの値を比較して、その結果を true(真)または false(偽)で返す記号。「>」(より大きい)「<」(より小さい)「>=」(以上)「<=」(以下)「==」「===」(等しいか)「!=」「!==」(等しくないか)などがある。if文の条件式の中で頻繁に使われる。
| 演算子 | 意味 | 構文例 | 結果 |
|---|---|---|---|
| > | より大きい | 10 > 5 | true |
| < | より小さい | 10 < 5 | false |
| >= | 以上 | 10 >= 10 | true |
| <= | 以下 | 9 <= 10 | true |
| === | 厳密に等しい(型も含めて一致) | 10 === 10 | true |
| !== | 厳密に等しくない | 10 !== "10" | true |
if文の条件式は、最終的にこの比較演算子などによってtrueかfalseのどちらかに評価されます。条件式がtrueであれば直後の波括弧内の処理が実行され、falseであればその処理はスキップされます。
// 承認ルールの例:申請金額が10万円以上なら上長承認フラグを立てる
let requestAmount = 120000;
let needsApproval = false;
if (requestAmount >= 100000) {
needsApproval = true;
}
console.log(needsApproval); // true
2-1. if文は上から下へ、1つずつ評価される
if文(および後述するelse if)の実行順序は必ず上から下です。JavaScriptのエンジンは条件式を上の行から順番にチェックし、最初にtrueと判定された条件のブロックだけを実行して、それ以降の条件チェックは行いません。この「最初に一致した条件で処理が確定し、それ以降はスキップされる」という性質が、次章のelse ifチェーンで特に重要な意味を持ちます。
条件式では「等しいか」を調べる「==」または「===」を使います。誤って代入演算子の「=」を1つだけ書いてしまうと、比較ではなく代入の処理になり、意図と異なる動作になる典型的なミスです。エディタの多くはこのミスを警告してくれますが、初学者が最初につまずきやすいポイントの一つです。
03 ELSE IF CHAIN else ifで複数の分岐を作る:実行順序の注意点 条件を並べる順番を間違えると、意図した分岐に到達しない
業務ルールは「はい・いいえ」の2択だけとは限りません。「3段階の評価ランクを付ける」「金額帯によって手数料率を変える」といった3つ以上の分岐が必要な場面では、else ifを使って条件を連ねていきます。
// 業務ルールの例:スコアに応じて評価ランクを付ける
let score = 85;
let grade;
if (score >= 90) {
grade = "S";
} else if (score >= 80) {
grade = "A";
} else if (score >= 60) {
grade = "B";
} else {
grade = "C";
}
console.log(grade); // "A"(scoreが85で、90未満・80以上に該当)
この例では、上から順に「90点以上か」「(そうでないなら)80点以上か」「(そうでもないなら)60点以上か」という具合に、1つ前の条件が成り立たなかった場合にのみ次の条件がチェックされます。score=85は最初の「90以上」には該当しませんが、次の「80以上」に該当するため、そこでgradeが"A"に確定し、以降の条件は評価されません。
3-1. よくある事故:条件の順番が逆で、後ろの分岐に永遠に到達しない
else ifチェーンで最も多いミスは、広い条件を先に、狭い条件を後に書いてしまうことです。次の例を見てください。
// NG例:条件の順番が逆になっている
let score = 85;
let grade;
if (score >= 60) {
grade = "合格";
} else if (score >= 80) {
grade = "優秀"; // ← この行には永遠に到達しない
} else {
grade = "不合格";
}
console.log(grade); // "合格"(score=85でも"優秀"にはならない)
score=85は本来「優秀(80点以上)」に該当してほしいところですが、先に書かれた「score >= 60」に先にマッチしてしまうため、そこで判定が確定し、後ろの「score >= 80」の分岐にはどんな点数でも絶対に到達しません。これは構文エラーにはならないため、テストしないと気づきにくい典型的な事故です。
score >= 90 → score >= 80 → score >= 60 のように、範囲が狭い(=より限定的な)条件から先に並べるのが鉄則です。広い条件を先に書くと、後ろに続く条件がどんな値でも実行されなくなります。業務ルールをif文に落とし込むときは、この順序を必ず確認してください。
チェック
ブロックを実行
して終了
else ifへ
なければelseを
実行
04 LOGICAL OPERATORS 論理演算子で複数条件を組み合わせる(&&・||・!) 「AかつB」「AまたはB」「Aではない」を1つの条件式にまとめる
業務ルールは「1つの条件だけ」で完結しないことも多くあります。「法人メールアドレスかつ従業員数10名以上」「土日または祝日」といった複合条件を表現するために使うのが論理演算子です。
📚 用語解説
論理演算子(&&・||・!):複数の条件式を組み合わせるための記号。「&&」(AND、かつ)は両方の条件がtrueのときだけ全体がtrueになる。「||」(OR、または)はどちらか一方でもtrueなら全体がtrueになる。「!」(NOT、否定)は条件の真偽を反転させる。いずれもif文の条件式の中で複数条件を1行にまとめるために使う。
| 演算子 | 読み方 | 意味 | 構文例 |
|---|---|---|---|
| && | AND(かつ) | 両方の条件がtrueのときだけ全体がtrue | a >= 10 && b === "法人" |
| || | OR(または) | どちらか一方でもtrueなら全体がtrue | day === "土" || day === "日" |
| ! | NOT(否定) | 条件の真偽を反転させる | !isApproved |
// 業務ルールの例:法人メール かつ 従業員数10名以上なら優先対応フラグを立てる
let emailDomain = "example.co.jp";
let employeeCount = 25;
let isCorporateEmail = !emailDomain.endsWith("gmail.com") && !emailDomain.endsWith("yahoo.co.jp");
if (isCorporateEmail && employeeCount >= 10) {
console.log("優先対応リストに追加");
} else {
console.log("通常対応");
}
// 実行結果: "優先対応リストに追加"
この例では、「法人ドメインらしきメールアドレスであること」と「従業員数が10名以上であること」の両方を満たしたときだけ優先対応フラグが立ちます。&&でつないだ条件は、片方でもfalseになった時点で全体がfalseになる点を押さえておくと、複雑な条件式も読み解きやすくなります。
4-1. 条件が増えるほど、読みやすさを意識する
&&や||を何個も連続でつなげると、条件式が長くなり、後から読み返したときに理解しづらくなります。実務では、複雑な条件を1行にまとめるより、意味のある単位で変数に分けてから組み合わせる方が、修正時のミスを減らせます。
// 読みにくい例
if (amount >= 100000 && (dept === "営業" || dept === "開発") && !isCancelled && userLevel >= 3) {
// ...
}
// 意味の単位で変数に分けた例(読みやすい)
let isHighAmount = amount >= 100000;
let isTargetDept = (dept === "営業" || dept === "開発");
let isActive = !isCancelled;
let hasEnoughLevel = userLevel >= 3;
if (isHighAmount && isTargetDept && isActive && hasEnoughLevel) {
// ...
}
05 EQUALITY OPERATORS ==と===の違い:JavaScript特有の落とし穴 「型変換される比較」と「型まで含めて比較」の違いを理解する
JavaScriptには「等しいかどうか」を調べる演算子が2種類あります。==(緩やかな等価演算子)と===(厳密な等価演算子)です。この2つは見た目が似ていますが、動作は明確に異なります。
📚 用語解説
緩やかな等価演算子(==):2つの値を比較する際、型(数値か文字列かなど)が異なる場合は、JavaScriptが自動的に型を変換(型変換)してから比較する演算子。たとえば数値の0と文字列の"0"は、==で比較すると型変換された結果trueになる。直感と異なる結果になりやすいため、業務コードでの多用は推奨されない。
📚 用語解説
厳密な等価演算子(===):2つの値の「型」と「値」の両方が一致する場合のみtrueを返す演算子。型変換は一切行われない。数値の0と文字列の"0"は、型が異なるため===で比較すると必ずfalseになる。意図しない型変換によるバグを防げるため、JavaScriptでは基本的に===の使用が推奨されている。
console.log(0 == "0"); // true (文字列"0"が数値0に型変換されて比較される) console.log(0 === "0"); // false (型が数値と文字列で異なるため一致しない) console.log(1 == "1"); // true console.log(1 === "1"); // false console.log(null == undefined); // true (この2つだけは==で特別に一致する) console.log(null === undefined); // false (型が異なるため一致しない)
上記の例が示すとおり、==は「型が違っても、値としての意味が同じなら一致とみなす」のに対し、===は「型まで完全に同じでなければ一致とみなさない」という違いがあります。フォームの入力値(多くの場合は文字列)と、プログラム内部で扱う数値を比較するような場面では、==を使うと意図しない一致・不一致が発生することがあります。
==は型変換という「見えない挙動」を伴うため、比較結果が直感と異なる場合があります。JavaScriptのコーディング規約の多くが、明示的に型を変換したい場合を除いて===(および!==)の使用を推奨しています。入力値を数値として比較したい場合は、先にNumber()などで型を変換してから===で比較するのが安全な書き方です。
5-1. switch文は内部的に厳密比較(===相当)で動く
後述するswitch文も、case句との比較は型まで含めて厳密に一致するかどうかで判定されます。たとえば数値の1と文字列の"1"は、switch文の中では別の値として扱われるため、比較対象の型があらかじめ揃っているかを確認しておく必要があります。
06 TRUTHY AND FALSY truthy/falsyという考え方:「条件に当てはまらない」値とは if文の条件式に値をそのまま入れたときの、JavaScript独特の判定ルール
JavaScriptのif文は、条件式に比較演算子を使わず、値そのものを条件式に書くこともできます。この場合、JavaScriptはその値を自動的にtrueまたはfalseとして扱います。この性質をtruthy(真として扱われる)/falsy(偽として扱われる)と呼びます。
📚 用語解説
truthy / falsy:条件式の中で値そのものが評価されるとき、JavaScriptがその値をtrue相当(truthy)とfalse相当(falsy)のどちらとして扱うかを表す考え方。falsyと定義されている値は false・0・""(空文字列)・null・undefined・NaN の6種類のみで、それ以外の値(文字列"0"や空の配列[]、空のオブジェクト{}を含む)はすべてtruthyとして扱われる。
| 値 | truthy / falsy | 備考 |
|---|---|---|
| false | falsy | そのままfalseとして扱われる |
| 0 | falsy | 数値のゼロ |
| ""(空文字列) | falsy | 中身が空の文字列 |
| null | falsy | 値が意図的に「無い」ことを示す |
| undefined | falsy | 値が定義されていない状態 |
| NaN | falsy | 数値として計算に失敗した結果 |
| "0"(文字列の0) | truthy | 空文字ではないためtruthy扱いになる |
| [](空の配列) | truthy | 中身が空でも配列自体はtruthy |
| {}(空のオブジェクト) | truthy | 同上、オブジェクト自体はtruthy |
// 在庫数を条件式にそのまま入れる例
let stockCount = 0;
if (stockCount) {
console.log("在庫あり: " + stockCount + "個");
} else {
console.log("在庫なし、または未入力");
}
// 実行結果: "在庫なし、または未入力"
// stockCountは「在庫0個」という正当な値だが、0はfalsyなのでelse側に入ってしまう
6-1. 「0件」と「未入力」を区別できない、という実務上の罠
上記のコード例は、業務システムでよく起きる典型的な不具合です。「在庫が0個」という正当な業務データと、「そもそも値が入力されていない」という異常データは本来まったく別の意味を持ちますが、どちらもfalsyと判定されるため、単純にif (stockCount)と書いてしまうと区別できません。
// 改善例:0とnull/undefinedを明確に区別する
let stockCount = 0;
if (stockCount === null || stockCount === undefined) {
console.log("在庫数が未入力です");
} else if (stockCount === 0) {
console.log("在庫は0個です(要発注)");
} else {
console.log("在庫あり: " + stockCount + "個");
}
// 実行結果: "在庫は0個です(要発注)"
在庫数・件数・金額のように「0」自体が業務上重要な値になり得る項目は、if (値)のようにtruthy/falsy任せで判定せず、=== 0や=== null、=== undefinedのように比較演算子で明示的に判定することを徹底してください。この一手間を省くと「0件なのに正しく検知できない」不具合につながります。
07 SWITCH & TERNARY switch文・三項演算子との使い分け 同じ値に対して複数の分岐がある場合、if文以外の選択肢もある
1つの値に対して複数のパターンを判定したい場合、else ifを何度も重ねる代わりにswitch文を使うと、コードが整理しやすくなることがあります。また、「条件によって代入する値を1行で切り替えたい」だけの単純なケースでは三項演算子が便利です。
📚 用語解説
switch文:1つの値(式)に対して、複数のcase(ケース)を順に比較し、一致したcaseの処理を実行する構文。else ifを何度も重ねるより見た目が整理されることが多い。ただしcaseとの比較は型まで含めた厳密な一致(===相当)で行われる点、各case処理の末尾にbreakを書き忘れると次のcaseに処理が「落ちて」しまう点に注意が必要。
📚 用語解説
三項演算子(?:):「条件 ? 真の場合の値 : 偽の場合の値」という書式で、if/elseを1行で表現できる演算子。変数への代入や、表示するテキストの切り替えなど、単純な二択の場面で使われる。条件分岐が3つ以上になったり、処理内容が複雑になったりする場合はif/else ifで書いた方が可読性が高い。
// switch文の例:部門コードに応じた処理の切り替え
let deptCode = "SALES";
switch (deptCode) {
case "SALES":
console.log("営業部の処理を実行");
break;
case "DEV":
console.log("開発部の処理を実行");
break;
case "ACC":
console.log("経理部の処理を実行");
break;
default:
console.log("該当する部門がありません");
}
// 三項演算子の例:合否判定を1行で
let score = 75;
let result = score >= 60 ? "合格" : "不合格";
console.log(result); // "合格"
| 構文 | 向いている場面 | 注意点 |
|---|---|---|
| if / else if | 条件が範囲や複合条件を含む場合 | 条件の順序を間違えると後続に到達しない |
| switch | 1つの値に対して多数のパターンがある場合 | break忘れで次のcaseに処理が落ちる |
| 三項演算子(?:) | 単純な二択を1行で表現したい場合 | 条件が複雑になると逆に読みにくくなる |
実務では、まずif/else ifで書いてみて、「同じ値に対する分岐が5個も6個も並ぶ」ようならswitchへの書き換えを検討する、という順番がおすすめです。三項演算子は「代入する値を切り替えるだけ」のごく単純なケースに限定して使うと、コード全体の可読性を保てます。
08 PRACTICAL PATTERNS 業務での条件分岐 実践パターン集 承認ルール・割引ルール・入力チェックへの応用例
ここまで紹介した構文を組み合わせると、実務でよくある判断ルールの多くをコードとして表現できます。代表的なパターンをいくつか紹介します。
8-1. 金額に応じた承認ルート判定
// 申請金額に応じて承認ルートを変える
function getApprovalRoute(amount) {
if (amount >= 1000000) {
return "役員承認";
} else if (amount >= 300000) {
return "部長承認";
} else if (amount >= 50000) {
return "課長承認";
} else {
return "担当者決裁";
}
}
console.log(getApprovalRoute(450000)); // "部長承認"
8-2. 会員ランクに応じた割引率の判定
// 会員ランクと購入金額から割引率を決める
function getDiscountRate(rank, amount) {
if (rank === "プラチナ" && amount >= 50000) {
return 0.15;
} else if (rank === "プラチナ" || amount >= 50000) {
return 0.10;
} else if (rank === "ゴールド") {
return 0.05;
}
return 0;
}
console.log(getDiscountRate("プラチナ", 30000)); // 0.10(プラチナ会員のため)
8-3. フォーム入力チェック(必須項目・形式チェック)
// 問い合わせフォームの簡易バリデーション
function validateForm(email, phone) {
if (!email || email.trim() === "") {
return "メールアドレスは必須です";
}
if (!email.includes("@")) {
return "メールアドレスの形式が正しくありません";
}
if (phone && !/^[0-9-]+$/.test(phone)) {
return "電話番号は数字とハイフンのみで入力してください";
}
return "OK";
}
09 GENAI CASE DATA 【独自データ】GENAI実運用における条件分岐業務の実態 「もし〇〇なら」という判断業務に、どれだけの時間がかかっていたか
ここでは、弊社(株式会社GENAI)が実際にどの程度の業務時間を「条件分岐的な判断業務」の処理・実装に費やしていたか、社内の実運用データをもとに紹介します。条件分岐そのものの構文よりも、「どの条件を、どの順番で、どう組み合わせれば目的の判定になるか」を設計する時間が、見えにくいコストになっているケースが多くあります。
| 項目 | 内容 |
|---|---|
| 利用プラン | Claude Max 20x(月額$200/約30,000円) |
| 利用開始 | 2025年後半〜 |
| 適用範囲 | 経営・営業・広告・開発・経理・秘書業務・個人業務まで全社 |
| 条件分岐関連の主な用途 | 請求書の金額別チェック・広告配信条件の調整・問い合わせ内容の振り分け |
弊社の経理業務では、請求書の金額帯や取引先区分によって「チェック方法を変える」「承認ルートを分岐させる」といった条件分岐的な判断が定常的に発生します。以前はこうした判定ロジックを都度スクリプトとして組み立て、動作確認・修正を繰り返す形で対応していました。
| 業務領域 | 主な用途 | 概算削減時間(肌感ベース) |
|---|---|---|
| 経理 | 請求書チェック・経費仕訳・Freee連携 | 月40h → 月5h |
| 広告運用 | 週次レポート・CPA分析・配信内容調整 | 週10h → 週1h |
| 秘書業務 | 日報生成・議事録・スケジュール調整 | 日2h → 日15分 |
上記は弊社の肌感ベースの数値であり、業種・業態・担当者のスキルによって削減時間は変動します。「完全自動化」ではなく、人間のレビュー・微調整を伴う運用である点にもご留意ください。
特に経理・広告領域の判定処理は、本記事で紹介した「金額による分岐」「複数条件の組み合わせ」「0や空欄の扱い」がそのまま活きる領域です。ただし実務では、「今回のデータにはどの条件をどの順番で並べるか」を都度設計する作業が、これまでのボトルネックでした。
10 COMMON PITFALLS 【独自】非エンジニアが条件分岐でつまずく3つの罠 つまずきやすいポイントとチェックリスト
if文は構文自体はシンプルですが、非エンジニアの方が独学やAIとの協業で条件分岐を扱い始めると、共通してつまずくポイントがあります。ここでは代表的な3つの罠と、その回避方法を整理します。
10-1. 罠1:else ifの順序を間違えて、意図した分岐に永遠に到達しない
3章で紹介したとおり、広い条件を先に書いてしまうと、後ろのより限定的な条件には二度と到達しません。これはエラーにならないため、テストして実際の値で確認しないと気づけません。
10-2. 罠2:==を使ったことで、型の違う値が意図せず一致してしまう
5章で紹介したとおり、==は型変換を伴うため、数値の0と文字列の"0"が一致してしまうなど、直感と異なる判定結果になることがあります。業務コードでは基本的に===を使うことを徹底し、型変換をしたい場合は事前にNumber()などで明示的に変換しておくのが安全です。
10-3. 罠3:0や空文字を「未入力」と誤って判定してしまう
6章で紹介したとおり、0・空文字・nullはすべてfalsyとして扱われるため、if (値)という書き方だけでは「0件」と「未入力」を区別できません。数量・金額のように0が意味を持つ項目は、比較演算子で明示的に判定する必要があります。
狭い条件が
先か確認
=== を
使っているか
誤判定して
いないか
console.log
確認
11 WITH CLAUDE CODE 構文を覚えなくても、条件を日本語で伝えればClaude Codeが実装する if/else if/==/===/truthy...一つひとつ暗記しなくても、目的さえ言えれば実装される
ここまで見てきたとおり、if文自体はシンプルでも、else ifの実行順序・==と===の違い・truthy/falsyの扱いなど、正しく動く条件分岐を書くには気をつけるべき点が少なくありません。10章で挙げたような「条件の順序ミス」「型の取り違え」「0の誤判定」といった落とし穴を踏まずに、毎回正しい条件分岐を組み立てるのは、プログラミングに慣れていない人ほどハードルが高いのが実情です。
この「業務ルールを整理し、条件の順序や比較方法を正しく設計し、コードに落とし込み、テストする」という一連の作業は、Claude Codeのようなエージェント型AIツールに日本語でそのまま依頼できる領域です。if・else if・==・===・truthy/falsyといった用語や構文を暗記する必要はなく、「このデータに対してこういう判断をしたい」という要件をそのまま伝えるだけで、条件の順序や比較方法まで含めて適切な実装を提案してもらえます。
📚 用語解説
Claude Code:Anthropic社が提供するAIエージェントツール。チャット形式で「〇〇をやって」と指示するだけで、ファイルの内容を読み取り、コードの作成・修正・実行までを自律的に行う。ターミナル版だけでなく、ターミナル操作が不要なデスクトップ版も提供されており、非エンジニアでも日本語の指示だけで業務を任せられる。if文の構文やelse ifの順序、==と===の使い分けを暗記していなくても、目的を伝えるだけで正しいコードが得られる。
// Claude Codeへの依頼イメージ(実際はチャットで日本語のまま指示するだけ)
// 依頼例:
// 「問い合わせフォームのデータで、メールアドレスが未入力ならエラー、
// フリーメール(gmail/yahoo等)なら通常対応、
// それ以外の法人ドメインかつ従業員数10名以上なら優先対応リストに入れる
// 処理を作って」
// Claude Codeが生成するコード例
function classifyInquiry(email, employeeCount) {
if (!email || email.trim() === "") {
return "エラー:メールアドレス未入力";
}
const freeDomains = ["gmail.com", "yahoo.co.jp", "outlook.com"];
const domain = email.split("@")[1] || "";
const isFreeEmail = freeDomains.includes(domain);
if (!isFreeEmail && employeeCount >= 10) {
return "優先対応リストへ追加";
}
return "通常対応";
}
この依頼の中で、「未入力チェックを最初に置くべきか」「フリーメールの判定にどの比較演算子を使うか」「従業員数の条件をどう組み合わせるか」といった、この記事で説明してきた判断がすべて自動的に反映されている点に注目してください。if・else if・==・===・truthy/falsyの意味を一つひとつ覚えていなくても、目的さえ言語化できれば正しい実装にたどり着けます。
「金額がちょうど10万円のときはどちらの分岐に入れたいか」「在庫が0個のときはどう扱いたいか」といった境界値の希望を一緒に伝えると、else ifの順序や比較演算子(>=かそれとも>か)まで意図通りに実装されやすくなります。抽象的な説明だけより、具体的な数値例を見せる方が精度の高い提案が返ってきます。
12 PRACTICAL WORKFLOW Claude Codeで業務ルールを自動化する実践フロー ターミナル操作なし・デスクトップ版で完結する4ステップ
「Claude Codeが便利なのは分かったが、エンジニアじゃないので導入が不安」という方向けに、実際にどのような手順で条件分岐を含む業務ルールを組み立てていくのかを整理します。ターミナル(黒い画面)の知識は一切不要です。
日本語で伝える
対象データ・
条件・境界値
コード生成
条件の順序・
比較方法を自動判断
動作確認
境界値も含めて
結果を確認
組み込み
継続的に利用
12-1. Step1:まず1つの判断ルールだけを具体的に伝える
いきなり複数の判断ルールをまとめて依頼するのではなく、「このデータのこの項目に対して、この条件で判定したい」という1つの具体的な要望から始めるのがコツです。「承認フローを自動化したい」のような抽象的な依頼より、「申請金額が10万円以上なら部長承認、100万円以上なら役員承認にして」のような具体的な依頼の方が、精度の高いコードがすぐに得られます。
12-2. Step2:出てきたコードをそのまま実行して確認する
Claude Codeはファイルを直接読み書きしたり、コードをその場で提示したりできます。生成されたコードを実際のデータに対して実行し、境界値(ちょうど10万円のケースなど)も含めて結果を確認します。
12-3. Step3:期待と違う結果が出たら、そのまま日本語で伝える
「思っていた結果と違う」と感じたら、専門用語を使わずに「〇〇のケースだと結果がおかしい」とそのまま伝えるだけで十分です。10章で紹介したような順序ミスや型の取り違えの問題も、Claude Codeが原因を特定して修正してくれます。
12-4. Step4:うまくいった判断ルールを横展開する
1つの判断ルールで効果が確認できたら、同じ考え方を他の業務にも広げていくのが次のステップです。たとえば「請求書の金額別チェック」で使った条件分岐の組み立て方は、経費精算や在庫チェックなど、似た構造の判断であれば同様に応用できます。
弊社では、こうした「もし〇〇なら」という判断を含む業務ルールについても、条件の設計から実装、テストデータでの検証までをClaude Codeに任せる形で運用しています。9章で紹介した経理・広告領域の削減事例も、こうした細かな条件分岐の積み重ねによるものです。
13 CONCLUSION まとめ if文の基本を押さえつつ、実装の負担は仕組みで減らす
この記事では、JavaScriptのif文について、基本構文、else ifの実行順序、比較演算子、==と===の違い、truthy/falsyの考え方、switch文・三項演算子との使い分け、業務での実践パターンまでを整理しました。最後にポイントを振り返ります。
if文の構文は種類が多いわけではありませんが、else ifの順序、==と===の違い、truthy/falsyの扱いなど、正しく動く条件分岐を書くには意外と多くの注意点があります。まずは本記事のコード例を実際に動かしながら、自分の業務ルールに当てはめて考えてみてください。
業務の判断ルールの自動化、Claude Codeで一緒に進めませんか
「この承認ルールをシステム化したいが、条件をどう組み立てればいいかわからない」「既存のチェック処理の条件分岐を見直したい」——弊社AI鬼管理では、Claude Codeを使った業務ルールの自動化・条件分岐設計の支援から導入までを行っています。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. if文とelse ifの違いは何ですか?
A. if文は「もし条件Aなら処理Xを実行する」という単一の判断を表す構文です。else ifは、if文に続けて「(そうでなく)もし条件Bなら処理Yを実行する」という追加の条件を並べるための構文で、3つ以上の分岐を作りたいときに使います。評価は上から順に行われ、最初にtrueになった条件のブロックだけが実行されます。
Q. else ifを並べるとき、条件の順番はどう決めればいいですか?
A. 範囲が狭い(より限定的な)条件を先に、広い条件を後に書くのが基本です。たとえば「90点以上」「80点以上」「60点以上」という判定なら、この順番で書く必要があります。広い条件を先に書くと、それより後ろの条件には永遠に到達しなくなります。
Q. ==と===はどちらを使うべきですか?
A. 業務で使うコードでは基本的に===(および!==)を使うことをおすすめします。==は型が異なる値同士でも型変換してから比較するため、数値の0と文字列の"0"が一致するなど、直感と異なる結果になることがあります。型を明示的に変換したい場合は、あらかじめNumber()などで変換してから===で比較するのが安全です。
Q. truthy・falsyとは何ですか?0は条件式でどう扱われますか?
A. JavaScriptのif文に値をそのまま入れると、false・0・""(空文字列)・null・undefined・NaNの6種類だけがfalse相当(falsy)として扱われ、それ以外の値(文字列の"0"や空の配列[]を含む)はすべてtrue相当(truthy)として扱われます。0は数値としてfalsyになるため、「0件」を「未入力」と誤判定しないよう、比較演算子で明示的に判定することが重要です。
Q. if文とswitch文はどちらを使うべきですか?
A. 条件が範囲(〇〇以上など)や複合条件を含む場合はif/else ifが適しています。1つの値に対して多数のパターンを判定したい場合は、switch文の方がコードが整理されて見やすくなることがあります。switch文はcaseの比較が型まで含めた厳密な一致で行われる点、break忘れで次のcaseに処理が落ちてしまう点に注意が必要です。
Q. JavaScriptを勉強していなくても、条件分岐を使った処理は作れますか?
A. 作れます。Claude Codeのようなエージェント型AIツールであれば、判定したい条件と対象データを日本語で伝えるだけで、else ifの順序や比較演算子の使い分け、0や空文字の扱いまで含めて考慮したコードを生成してもらえます。if・else if・==・===といった構文を暗記していなくても、目的を言語化できれば実装にたどり着けます。
Q. 条件分岐のコードが意図通り動いているか、自分で確認する方法はありますか?
A. 境界値(ちょうどその金額・0件・空文字など)を使ってテストするのが最も有効です。console.log()で判定結果を出力させながら、正常なデータと極端なデータの両方を試し、狙った分岐に入っているかを一つずつ確認してください。Claude Codeに依頼した場合も、生成されたコードを実データで動作確認する工程は必ず挟むことをおすすめします。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




