【2026年8月最新】JavaScriptのif文とは?条件分岐の考え方・else ifの使い方からClaude Codeでの業務ルール実装まで

【2026年8月最新】JavaScriptのif文とは?条件分岐の考え方・else ifの使い方からClaude Codeでの業務ルール実装まで

「在庫が10個を切ったら自動で発注する」「売上目標を達成した月だけボーナスを支給する」「問い合わせフォームで、法人メールアドレスの場合だけ営業担当に通知する」——こうした「もし〇〇なら、こうする。そうでなければ、ああする」という判断ルールは、業種を問わずあらゆる業務に存在します。

実はこの「もし〇〇なら」という判断の仕組みは、プログラミングの世界ではif文(条件分岐)と呼ばれ、JavaScriptをはじめほぼすべてのプログラミング言語に共通して存在する最も基本的な部品です。Webサイトの入力チェック、業務システムの承認フロー、Excelマクロの自動判定——裏側では必ずと言っていいほどif文が動いています。

代表菅澤 代表菅澤
if文と聞くと「エンジニアの専門知識」というイメージがあるかもしれませんが、中身はシンプルです。「もしAならBする、そうでなければCする」という、私たちが日常業務で無意識にやっている判断ルールを、コンピュータにも分かる形で書き下しただけのものです。
AI鬼管理山崎 AI鬼管理山崎
この記事では、JavaScriptのif文の基本から、else ifの実行順序、==と===の違い、truthy/falsyといった間違えやすいポイントまでを、業務の意思決定ルールに例えながら整理していきます。最後には「構文を覚えなくても、条件を日本語で伝えるだけでClaude Codeが実装してくれる」という選択肢についても触れます。

この記事を最後まで読むと、次の内容が理解できます。

✔️if文の基本構造:条件式・比較演算子・実行順序の考え方
✔️else ifチェーン:複数の条件を並べたときに、どの順番で評価されるか
✔️==と===の違い:JavaScript特有の「型変換される比較」の落とし穴
✔️truthy/falsy:0や空文字が条件式でどう判定されるかという間違えやすいポイント
✔️業務での条件分岐の実践パターン:承認ルール・割引ルール・入力チェックへの応用
✔️構文を覚えなくても条件分岐を実装する方法:日本語の指示でAIに任せる選択肢
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年8月最新】JavaScriptのif文とは?条件分岐の考え方・else ifの使い方からClaude Codeでの業務ルール実装まで
JavaScriptのif文の基本、else ifの実行順序、==と===の違い、truthy/falsyの注意点を「もし〇〇なら」の業務ルールに例えて解説。構文を覚えなくても、条件を日本語で伝えるだけでClaude Codeが実装する方法も紹介します。

01 if文とは何か・条件分岐を「業務ルール」で理解する 「もし〇〇なら」という判断を、プログラムに書き下したもの

if文とは、「ある条件が成り立つかどうかによって、実行する処理を切り替える」ためのプログラミングの基本構文です。英語の「if(もし)」が示すとおり、「もしこの条件が真(true)なら、この処理をする」という判断をコードとして表現します。

📚 用語解説

if文:「もし条件Aが成り立つなら処理Xを実行する」という条件分岐を書くための構文。JavaScriptに限らず、Python・VBA・Javaなどほぼ全てのプログラミング言語に存在する最も基本的な制御構文の一つ。条件が成り立たない場合の処理は else(そうでなければ)で追加できる。

📚 用語解説

条件分岐:プログラムの実行結果を、ある条件の真偽(trueかfalseか)によって変える仕組み全般を指す言葉。if文はその代表例だが、switch文や三項演算子(?:)も条件分岐の一種。業務の世界では「承認ルール」「割引条件」「入力チェック」など、判断が発生する場面すべてに条件分岐が潜んでいる。

業務の場面に置き換えると分かりやすくなります。たとえば在庫管理の担当者は、日々こんな判断をしているはずです。

在庫数を
確認する

現在の在庫は
何個か
もし10個未満
なら

発注処理を
実行する
そうでなければ
何もせず
据え置く

この「在庫数を確認する→もし10個未満なら発注する→そうでなければ何もしない」という一連の判断を、JavaScriptで書くとおおよそ次のようになります。

// 業務ルール:在庫が10個未満なら発注する
let stockCount = 7;

if (stockCount < 10) {
    console.log("発注処理を実行します");
} else {
    console.log("在庫は十分です。処理はありません");
}
// 実行結果: "発注処理を実行します"(stockCountが7で10未満のため)

コードの構造自体は難しくありません。if(もし)の後ろの丸括弧「()」に条件式を書き、波括弧「{}」の中に条件が成り立ったときの処理を書きます。elseを続けると「条件が成り立たなかった場合の処理」を追加できます。

AI鬼管理山崎 AI鬼管理山崎
重要なのは、if文自体は「AIやプログラミングの専門知識」ではなく、「普段みなさんが業務で使っている判断ルールを、コンピュータが実行できる形式に書き換えたもの」だという点です。構文を覚えることと、業務ルールを整理する力は別物です。
💡 まずは「もし〇〇なら」を日本語で書き出すことから

いきなりコードを書こうとせず、まず「もし在庫が10個未満なら発注する、そうでなければ何もしない」のように、自分の業務ルールを日本語の文章で書き出してみてください。この文章がそのままif文の設計図になります。この考え方は、後述するClaude Codeへの依頼の仕方にも直結します。

02 if文の書き方:条件式・比較演算子・実行順序 条件式に使う「比較演算子」の種類と、評価される順番

if文の条件式には、多くの場合「比較演算子」と呼ばれる記号を使って、2つの値を比較します。JavaScriptで使われる代表的な比較演算子は以下のとおりです。

📚 用語解説

比較演算子:2つの値を比較して、その結果を true(真)または false(偽)で返す記号。「>」(より大きい)「<」(より小さい)「>=」(以上)「<=」(以下)「==」「===」(等しいか)「!=」「!==」(等しくないか)などがある。if文の条件式の中で頻繁に使われる。

演算子意味構文例結果
>より大きい10 > 5true
<より小さい10 < 5false
>=以上10 >= 10true
<=以下9 <= 10true
===厳密に等しい(型も含めて一致)10 === 10true
!==厳密に等しくない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つだけ書いてしまうと、比較ではなく代入の処理になり、意図と異なる動作になる典型的なミスです。エディタの多くはこのミスを警告してくれますが、初学者が最初につまずきやすいポイントの一つです。

代表菅澤 代表菅澤
「上から順に評価されて、最初にtrueになったところで確定する」という順序の話は、次の章のelse ifで実際に事故が起きやすいポイントです。ここは意識して読み進めてください。

03 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」の分岐にはどんな点数でも絶対に到達しません。これは構文エラーにはならないため、テストしないと気づきにくい典型的な事故です。

⚠️ else ifチェーンは「狭い条件(厳しい条件)ほど先に」書く

score >= 90 → score >= 80 → score >= 60 のように、範囲が狭い(=より限定的な)条件から先に並べるのが鉄則です。広い条件を先に書くと、後ろに続く条件がどんな値でも実行されなくなります。業務ルールをif文に落とし込むときは、この順序を必ず確認してください。

最初のif条件を
チェック
真ならその
ブロックを実行
して終了
偽なら次の
else ifへ
該当するものが
なければelseを
実行
AI鬼管理山崎 AI鬼管理山崎
弊社の業務システム開発の相談でも、「割引ルールを作ったのに、高額プランのお客様に低額プラン向けの割引が適用されてしまう」といった不具合の相談を受けたことがあります。原因を見ると、たいていelse ifの順序が逆になっているケースでした。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 論理演算子で複数条件を組み合わせる(&&・||・!) 「AかつB」「AまたはB」「Aではない」を1つの条件式にまとめる

業務ルールは「1つの条件だけ」で完結しないことも多くあります。「法人メールアドレスかつ従業員数10名以上」「土日または祝日」といった複合条件を表現するために使うのが論理演算子です。

📚 用語解説

論理演算子(&&・||・!):複数の条件式を組み合わせるための記号。「&&」(AND、かつ)は両方の条件がtrueのときだけ全体がtrueになる。「||」(OR、または)はどちらか一方でもtrueなら全体がtrueになる。「!」(NOT、否定)は条件の真偽を反転させる。いずれもif文の条件式の中で複数条件を1行にまとめるために使う。

演算子読み方意味構文例
&&AND(かつ)両方の条件がtrueのときだけ全体がtruea >= 10 && b === "法人"
||OR(または)どちらか一方でもtrueなら全体がtrueday === "土" || 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 ==と===の違い: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文の中では別の値として扱われるため、比較対象の型があらかじめ揃っているかを確認しておく必要があります。

AI鬼管理山崎 AI鬼管理山崎
==と===の違いは、JavaScriptを学ぶ人が最初につまずく代表的なポイントです。「なぜか意図した分岐に入らない」という不具合の原因を調べると、この型変換の挙動が絡んでいることが少なくありません。

06 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備考
falsefalsyそのままfalseとして扱われる
0falsy数値のゼロ
""(空文字列)falsy中身が空の文字列
nullfalsy値が意図的に「無い」ことを示す
undefinedfalsy値が定義されていない状態
NaNfalsy数値として計算に失敗した結果
"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が意味を持つ値」は比較演算子で明示的に判定する

在庫数・件数・金額のように「0」自体が業務上重要な値になり得る項目は、if (値)のようにtruthy/falsy任せで判定せず、=== 0や=== null、=== undefinedのように比較演算子で明示的に判定することを徹底してください。この一手間を省くと「0件なのに正しく検知できない」不具合につながります。

代表菅澤 代表菅澤
truthy/falsyはJavaScript特有の仕様で、他の言語の経験があっても引っかかりやすいポイントです。「0や空文字がなぜかfalse扱いになる」という挙動を知らずに条件分岐を組むと、業務データが欠落した際にサイレントに誤動作する怖さがあります。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 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条件が範囲や複合条件を含む場合条件の順序を間違えると後続に到達しない
switch1つの値に対して多数のパターンがある場合break忘れで次のcaseに処理が落ちる
三項演算子(?:)単純な二択を1行で表現したい場合条件が複雑になると逆に読みにくくなる
💡 迷ったらif/else ifが基本、他は「読みやすくなるなら使う」

実務では、まずif/else ifで書いてみて、「同じ値に対する分岐が5個も6個も並ぶ」ようならswitchへの書き換えを検討する、という順番がおすすめです。三項演算子は「代入する値を切り替えるだけ」のごく単純なケースに限定して使うと、コード全体の可読性を保てます。

AI鬼管理山崎 AI鬼管理山崎
switch文のbreak忘れは、初学者だけでなく経験者でも起こしがちなミスです。「あるcaseの処理をしたら、そのまま次のcaseの処理まで実行されてしまった」という不具合は、switch文特有の落とし穴として覚えておくと安心です。

08 業務での条件分岐 実践パターン集 承認ルール・割引ルール・入力チェックへの応用例

ここまで紹介した構文を組み合わせると、実務でよくある判断ルールの多くをコードとして表現できます。代表的なパターンをいくつか紹介します。

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";
}
✔️承認ルート判定:金額・部門・申請者ランクなどの条件で分岐する承認フロー
✔️割引・手数料計算:会員ランク・購入金額・キャンペーン期間などの組み合わせ条件
✔️入力チェック:必須項目の有無・形式(メール・電話番号など)の妥当性判定
✔️表示の出し分け:ログイン状態・権限レベルによって見せる情報を変える
✔️通知の振り分け:問い合わせ内容や緊急度によって通知先を変える
代表菅澤 代表菅澤
こうしたパターンは、1つひとつのルール自体はシンプルでも、「条件をどの順番で並べるか」「==と===のどちらを使うか」「0や空文字をどう扱うか」といった、この記事で触れてきた注意点がすべて絡んできます。ゼロから書き起こすと、地味に時間がかかる領域です。

09 【独自データ】GENAI実運用における条件分岐業務の実態 「もし〇〇なら」という判断業務に、どれだけの時間がかかっていたか

ここでは、弊社(株式会社GENAI)が実際にどの程度の業務時間を「条件分岐的な判断業務」の処理・実装に費やしていたか、社内の実運用データをもとに紹介します。条件分岐そのものの構文よりも、「どの条件を、どの順番で、どう組み合わせれば目的の判定になるか」を設計する時間が、見えにくいコストになっているケースが多くあります。

項目内容
利用プランClaude Max 20x(月額$200/約30,000円)
利用開始2025年後半〜
適用範囲経営・営業・広告・開発・経理・秘書業務・個人業務まで全社
条件分岐関連の主な用途請求書の金額別チェック・広告配信条件の調整・問い合わせ内容の振り分け

弊社の経理業務では、請求書の金額帯や取引先区分によって「チェック方法を変える」「承認ルートを分岐させる」といった条件分岐的な判断が定常的に発生します。以前はこうした判定ロジックを都度スクリプトとして組み立て、動作確認・修正を繰り返す形で対応していました。

業務領域主な用途概算削減時間(肌感ベース)
経理請求書チェック・経費仕訳・Freee連携月40h → 月5h
広告運用週次レポート・CPA分析・配信内容調整週10h → 週1h
秘書業務日報生成・議事録・スケジュール調整日2h → 日15分
⚠️ 数値の注意書き

上記は弊社の肌感ベースの数値であり、業種・業態・担当者のスキルによって削減時間は変動します。「完全自動化」ではなく、人間のレビュー・微調整を伴う運用である点にもご留意ください。

特に経理・広告領域の判定処理は、本記事で紹介した「金額による分岐」「複数条件の組み合わせ」「0や空欄の扱い」がそのまま活きる領域です。ただし実務では、「今回のデータにはどの条件をどの順番で並べるか」を都度設計する作業が、これまでのボトルネックでした。

AI鬼管理山崎 AI鬼管理山崎
条件分岐の構文自体は覚えれば書けますが、「この判定ルールをどの順序で並べれば意図通りに動くか」「0件と未入力をどう区別するか」といった設計判断は、経験がないと時間がかかります。弊社では、この設計判断の部分もClaude Codeに相談しながら進めることで、担当者が本来の業務判断に集中できる時間を増やしています。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

10 【独自】非エンジニアが条件分岐でつまずく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が意味を持つ項目は、比較演算子で明示的に判定する必要があります。

条件の順番は
狭い条件が
先か確認
比較には
=== を
使っているか
0や空文字を
誤判定して
いないか
実データで
console.log
確認
✔️else ifの順序:狭い条件(厳しい条件)を先に書いているか
✔️比較演算子:==ではなく===(または!==)を使っているか
✔️falsy値:数量・金額など「0が意味を持つ項目」を比較演算子で明示的に判定しているか
✔️複合条件:&&と||を組み合わせる際、意図した優先順位で評価されているか(括弧で明示)
✔️テストケース:正常な値・境界値(0や空文字)の両方で動作確認をしたか
代表菅澤 代表菅澤
この3つの罠は、弊社の導入支援先でも本当によく見かけるパターンです。「条件式自体は正しいのに、順序や型の扱いの抜けで意図と違う動きをする」というのは、経験を積むまでは避けにくいミスなので、境界値でのテストを習慣にすることをおすすめします。

11 構文を覚えなくても、条件を日本語で伝えれば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の順序や比較演算子(>=かそれとも>か)まで意図通りに実装されやすくなります。抽象的な説明だけより、具体的な数値例を見せる方が精度の高い提案が返ってきます。

代表菅澤 代表菅澤
if文の構文やelse ifの順序ルールを暗記して手作業でコードを書く、という作業自体が、今の時代はもう必須ではなくなってきていると感じます。「どの条件をどう並べるべきか」という部分こそAIに相談すればいい領域で、人間が判断すべきなのは「そもそも何を判定したいか」という業務ルールの部分です。

12 Claude Codeで業務ルールを自動化する実践フロー ターミナル操作なし・デスクトップ版で完結する4ステップ

「Claude Codeが便利なのは分かったが、エンジニアじゃないので導入が不安」という方向けに、実際にどのような手順で条件分岐を含む業務ルールを組み立てていくのかを整理します。ターミナル(黒い画面)の知識は一切不要です。

判断ルールを
日本語で伝える

対象データ・
条件・境界値
Claude Codeが
コード生成

条件の順序・
比較方法を自動判断
実際のデータで
動作確認

境界値も含めて
結果を確認
業務ルールとして
組み込み

継続的に利用

12-1. Step1:まず1つの判断ルールだけを具体的に伝える

いきなり複数の判断ルールをまとめて依頼するのではなく、「このデータのこの項目に対して、この条件で判定したい」という1つの具体的な要望から始めるのがコツです。「承認フローを自動化したい」のような抽象的な依頼より、「申請金額が10万円以上なら部長承認、100万円以上なら役員承認にして」のような具体的な依頼の方が、精度の高いコードがすぐに得られます。

12-2. Step2:出てきたコードをそのまま実行して確認する

Claude Codeはファイルを直接読み書きしたり、コードをその場で提示したりできます。生成されたコードを実際のデータに対して実行し、境界値(ちょうど10万円のケースなど)も含めて結果を確認します。

12-3. Step3:期待と違う結果が出たら、そのまま日本語で伝える

「思っていた結果と違う」と感じたら、専門用語を使わずに「〇〇のケースだと結果がおかしい」とそのまま伝えるだけで十分です。10章で紹介したような順序ミスや型の取り違えの問題も、Claude Codeが原因を特定して修正してくれます。

✔️最初の依頼は「1つの判断ルール・1つのデータ」に絞る
✔️境界値(ちょうどその金額・0件のときなど)の希望を具体的に伝える
✔️生成されたコードは必ず一度、少量のテストデータで動作確認する
✔️結果がおかしいときは専門用語を使わず「〇〇の場合がおかしい」と伝える
✔️うまくいったパターンは、似た業務ルールにも横展開する

12-4. Step4:うまくいった判断ルールを横展開する

1つの判断ルールで効果が確認できたら、同じ考え方を他の業務にも広げていくのが次のステップです。たとえば「請求書の金額別チェック」で使った条件分岐の組み立て方は、経費精算や在庫チェックなど、似た構造の判断であれば同様に応用できます。

AI鬼管理山崎 AI鬼管理山崎
弊社では、最初に経理の請求書チェックで試した判断ルールを、広告レポートの配信条件調整や、問い合わせ内容の振り分けにもそのまま横展開しました。条件分岐という「考え方」自体は使い回せるので、1つ成功パターンができると展開が早いです。

弊社では、こうした「もし〇〇なら」という判断を含む業務ルールについても、条件の設計から実装、テストデータでの検証までをClaude Codeに任せる形で運用しています。9章で紹介した経理・広告領域の削減事例も、こうした細かな条件分岐の積み重ねによるものです。

代表菅澤 代表菅澤
if文の構文を1つずつ暗記する必要がなくなると、業務ルールを自動化するハードルは大きく下がります。「どの構文を使うか」より「どんな判断をしたいか」を考える時間に集中できるようになるのが、Claude Codeを使う最大のメリットだと感じています。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

13 まとめ if文の基本を押さえつつ、実装の負担は仕組みで減らす

この記事では、JavaScriptのif文について、基本構文、else ifの実行順序、比較演算子、==と===の違い、truthy/falsyの考え方、switch文・三項演算子との使い分け、業務での実践パターンまでを整理しました。最後にポイントを振り返ります。

✔️if文は「もし条件Aなら処理Xを実行する」という判断を書く最も基本的な構文
✔️else ifチェーンは上から順に評価され、狭い条件を先に書かないと後続に到達しない
✔️複数条件は&&(かつ)・||(または)・!(否定)で組み合わせられる
✔️==は型変換を伴い直感と異なる結果になりやすいため、業務コードでは===を基本にする
✔️false・0・""・null・undefined・NaNの6種類だけがfalsy、それ以外はtruthy
✔️0や空文字が意味を持つ項目は、比較演算子で明示的に判定する
✔️構文を暗記しなくても、Claude Codeに日本語で目的を伝えれば適切な条件分岐を実装してくれる

if文の構文は種類が多いわけではありませんが、else ifの順序、==と===の違い、truthy/falsyの扱いなど、正しく動く条件分岐を書くには意外と多くの注意点があります。まずは本記事のコード例を実際に動かしながら、自分の業務ルールに当てはめて考えてみてください。

代表菅澤 代表菅澤
if文の基礎知識は、覚えておいて損はありません。ただ、実際の業務では「この判断ルールをどの順序で、どう組み合わせれば意図通りに動くか」を都度設計する時間の方が長くなりがちです。そうした設計・実装の手間を減らしたい方は、AI鬼管理まで気軽にご相談ください。

業務の判断ルールの自動化、Claude Codeで一緒に進めませんか

「この承認ルールをシステム化したいが、条件をどう組み立てればいいかわからない」「既存のチェック処理の条件分岐を見直したい」——弊社AI鬼管理では、Claude Codeを使った業務ルールの自動化・条件分岐設計の支援から導入までを行っています。

AI鬼管理山崎 AI鬼管理山崎
判定したいルールと具体的な数値例を見せていただければ、その場で実装イメージをお伝えできます。まずは無料相談で、今かかっている判断・チェック作業の時間感覚をお聞かせください。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI鬼管理 — Claude Code導入支援トレーニング

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

AIBPO by AI鬼管理 — 定型業務の丸ごと代行

業務を丸ごと任せたい方へ

AIBPO by AI鬼管理

請求処理・データ入力・問い合わせ対応などの定型業務を、AI×人の品質管理体制で丸ごと代行。いまのコストの75%目安で、日々は成果物を承認するだけ。

よくある質問

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に依頼した場合も、生成されたコードを実データで動作確認する工程は必ず挟むことをおすすめします。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
※法人・事業用のメールアドレスでお願いします(Gmail等の個人用フリーメールは受付できません)
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年8月8日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。