```mdx
---
title: "If-Else"
description: "Add conditional logic and branching to workflows"
icon: "code-branch"
---

If-Elseノードは、定義した条件に基づいて実行を異なるパスにルーティングすることで、ワークフローに意思決定ロジックを追加します。変数を評価し、ワークフローがどの分岐に従うべきかを決定します。

<Frame caption="If-Else条件分岐の例">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/d26ffff1b2ad0989d46e80d6812cf2e7.png" alt="条件ロジックを含むテキスト要約ワークフロー" />
</Frame>

## 分岐ロジック

このノードは、複雑な決定木を処理するための複数の分岐パスをサポートします：

**IF Path** は、主要な条件がtrueと評価されたときに実行されます。

**ELIF Paths** は、IF条件がfalseのときに順番にチェックする追加の条件を提供します。複雑なロジックのために複数のELIF分岐を追加できます。

**ELSE Path** は、どの条件にも一致しないときのフォールバックとして機能し、常にワークフローに従うパスを提供します。

## 条件タイプ

さまざまな比較演算子を使用して変数をテストするために条件を設定します：

<Tabs>
  <Tab title="テキスト操作">
    **Contains** / **Not contains** - テキストが特定の単語やフレーズを含むかどうかをチェック
    
    **Starts with** / **Ends with** - パターンマッチングのためにテキストの始まりや終わりをテスト
    
    **Is** / **Is not** - 正確なテキスト比較のための値一致
  </Tab>
  
  <Tab title="値チェック">
    **Is empty** / **Is not empty** - 空白、null、または欠落した値をチェック
    
    **Greater than** / **Less than** - 数字や日付のための数値比較
    
    **Equals** / **Not equals** - 任意のデータ型のための正確な一致
  </Tab>
</Tabs>

## 複雑な条件

論理演算子を使用して複数の条件を組み合わせ、洗練された意思決定を可能にします：

<Frame caption="AND/ORロジックを使用した複雑な条件設定">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/0b71ee7363e07298348e0c81e63481b0.png" alt="複数条件の判断" />
</Frame>

**AND Logic** は、すべての条件がtrueであることを要求します。複数の基準を同時に満たす必要があるときに使用します。

**OR Logic** は、いずれかの条件がtrueであることを要求します。異なるシナリオに対して同じアクションをトリガーしたいときに使用します。

## 変数参照

条件内で、前のワークフローノードからの任意の変数を参照します。変数はユーザー入力、LLMの応答、API呼び出し、または他のワークフローノードの出力から取得できます。

変数セレクターを使用して利用可能な変数から選択するか、`{{variable_name}}`の構文を使用して変数名を直接入力します。

## 共通パターン

**コンテンツルーティング** - カテゴリ、言語、または複雑さに基づいて、異なるタイプのコンテンツを専門的な処理ノードに直接送ります。

**ユーザーロール管理** - ユーザーの権限、サブスクリプションレベル、またはアカウントタイプに基づいて異なるワークフロービヘイビアを実装します。

**エラーハンドリング** - 応答ステータスコード、データの有効性、または処理結果をチェックして、ワークフローを適切にルーティングします。

**動的処理** - 入力特性、処理結果、または外部条件に基づいてワークフロービヘイビアを調整します。

**多パスワークフロー** - アプリケーション内のさまざまなシナリオやエッジケースを処理する高度な分岐ロジックを作成します。
```