> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/logic-and-branching/continue-if.md).

# 条件付き継続

条件文を評価してカスタムロジックのステートメントに基づきワークフローの実行を条件付きで制御し、条件結果に応じて指定された次のステップへ進めるか、現在のブランチを終了することで、動的な分岐、条件付き処理、ワークフローの制御フローを可能にします。

## このブロックの仕組み

このブロックは条件文を評価し、ワークフローブランチが実行を継続するか停止するかを制御します。このブロックは:

1. 条件文（クエリ言語の構文を使用）と評価パラメータを入力として受け取ります
2. 条件文の定義から評価関数を構築します
3. 提供された評価パラメータを使用して条件を評価します（これらはワークフロー入力、ステップ出力、またはその他の動的値を参照できます）
4. もし条件の評価結果が `true`:
   * 指定された `next_steps` ブロックへ実行を継続します
   * もし `stop_delay` が設定されている場合、遅延終了を可能にするため現在時刻を記録します
5. もし条件の評価結果が `false`:
   * 現在のワークフローブランチを終了します（このブランチ内の下流ブロックの実行を停止します）
   * もし `stop_delay` が以前にトリガーされ、遅延期間がまだ経過していない場合、実行を `next_steps` 残りの遅延時間のあいだ継続します
6. 次のステップへ実行を継続するか、ブランチを終了するかのいずれかを指示するフロー制御ディレクティブを返します

ブロックは、動的値（ワークフローデータから）と静的値の間で、二項比較（等しい、等しくない、大なり、小なりなど）をサポートするクエリ言語システムを使用します。条件は、数値、文字列、その他のデータ型を確認できます。その `stop_delay` この機能により、条件が false になった後もしばらくブランチをアクティブに保てます。これは一時的な状態や、短時間の条件変動中も実行を維持するのに役立ちます（例: 検出数が閾値を下回った後も、ワークフローを数秒間アクティブに保つ）。

## 一般的な使用例

* **検出数に基づく条件付き処理**：検出されたオブジェクト数が閾値を超えた場合のみ処理を続行します（例: 3個以上のオブジェクトが検出された場合にのみアラートを処理し、数が閾値未満なら処理をスキップします）
* **動的品質管理**：画像品質メトリクス、検出信頼度スコア、またはモデル出力を評価し、品質基準を満たす場合にのみワークフロー実行を継続し、基準を満たさないブランチを終了します
* **条件付き通知**：特定の条件が満たされた場合にのみ通知を送信したりアクションをトリガーしたりします（例: 信頼度スコアが0.9を超えたとき、または特定のオブジェクトクラスが検出されたときに通知ブロックへ進む）
* **ブランチのフィルタリングとルーティング**：動的条件に基づいてワークフロー実行を異なるブランチに振り分け、一方の経路は継続し、他方は終了できるようにします（例: 動きが検出されたら動画録画ブランチを継続し、活動がなければ終了する）
* **閾値ベースのアクション**：値が閾値を満たす場合にのみ下流ブロックを実行します（例: 検出数 > 5 のときデータ保存へ進み、それ以外は終了する；温度が閾値を超えたときは処理を継続し、それ未満ならスキップする）
* **一時的な状態の処理**：Use `stop_delay` 条件が false になった後もブランチを短時間アクティブに保つことで、短時間の変化を処理し、一時的な変動に応じた急なオン/オフ切り替えを防ぎます

## 他のブロックへの接続

このブロックはワークフローの実行フローを制御し、次のように接続できます:

* **検出または分析ブロックの後** （例: Object Detection、Classification、Keypoint Detection）に接続して、検出数、信頼度スコア、クラス名、その他の予測結果を評価し、分析結果に基づいて条件付きで処理を継続します
* **データ処理ブロックの後** （例: Property Definition、Expression、Delta Filter）に接続して、計算された値、メトリクス、または処理済みデータを評価し、処理結果に基づいて後続ブロックを実行するか制御します
* **通知ブロックの前** （例: Email Notification、Slack Notification、Twilio SMS Notification）に接続して、特定の条件が満たされた場合にのみ通知を条件付きでトリガーし、不要なアラートを防ぎます
* **データ保存ブロックの前** （例: Local File Sink、CSV Formatter、Roboflow Dataset Upload、Webhook Sink）に接続して、一定の条件を満たした場合のみデータを保存または送信し、保存・送信される内容を絞り込みます
* **ワークフロー段階の間** 条件付き処理経路を作成し、動的条件に応じて異なるブランチを実行して、複雑なワークフローロジックと意思決定ツリーを実現します
* **並列ブランチ内** 複数の条件付き経路を作成し、それぞれの条件に応じてワークフローの異なる部分が独立して継続または終了できるようにします

### タイプ識別子

ステップで次の識別子を使用してください `"type"` フィールド: `roboflow_core/continue_if@v1` ワークフローのステップとしてブロックを追加します。

### プロパティ

| **名前**                | **タイプ**          | **説明**                                                                                                                                                                                                                                                  | 参照 |
| --------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`                | `str`            | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                 | ❌  |
| `condition_statement` | `StatementGroup` | クエリ言語の構文を使用して条件ロジックを定義します。評価する条件（例: 比較、等価性の確認、数値比較）を指定します。条件は、evaluation\_parameters で参照される動的オペランドを、(Number) ==、(Number) >、(Number) <、(String) == などの比較演算子とともに静的値と比較するバイナリ文を用いる StatementGroup 構文で構築されます。例: 動的値 'left' を (Number) == を使って静的値 1 と比較します。。 | ❌  |
| `stop_delay`          | `float`          | 条件が false になった後、ブランチを終了するまで実行を継続する秒数です。条件が以前 true で、その後 false になった場合、終了する前にこの遅延時間だけ next\_steps への実行が継続されます。これは一時的な状態変化の処理や、急なオン/オフ切り替えを防ぐのに役立ちます。効果を発揮するには 0 より大きい必要があります。0（デフォルト）に設定すると、条件が false になった時点で直ちに終了します。。                                   | ✅  |

この **参照** 列は、 `ワークフロー` 実行時に利用可能な動的値でプロパティをパラメータ化できる可能性を示します。 *バインディング* 詳細は、こちらをご覧ください。

### 入力と出力のバインディング

利用可能な接続は、そのバインディングの種類によって異なります。EasyOCR `条件を満たしたら継続` バージョン `v1` が持つバインディングの種類を確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* input
  * `evaluation_parameters` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）: condition\_statement で使用されるオペランド名を、ワークフローの実際の値に対応付ける辞書です。これらのパラメータは、条件文で評価される動的データを提供します。キーは条件内のオペランド名（例: 'left'、'right'）と一致し、値はワークフロー入力、ステップ出力、または計算済み値を参照するセレクタです。例: {'left': '$steps.detection.count', 'threshold': 5} ここで 'left' は condition\_statement 内で参照されます。。
  * `next_steps` (*ステップ*）: 条件が true と評価された場合に実行するワークフローステップのリストです。条件が満たされると、これらのステップに制御が渡り、ワークフローブランチが実行を継続できます。空の場合、条件が true でもブランチは終了します。各ステップセレクタは、条件が通ったときに実行されるワークフロー内のブロックを参照します。。
  * `stop_delay` ([*`float`*](/workflows/ja/gaido/developer-guide/kinds/float.md)）: 条件が false になった後、ブランチを終了するまで実行を継続する秒数です。条件が以前 true で、その後 false になった場合、終了する前にこの遅延時間だけ next\_steps への実行が継続されます。一時的な状態変化の処理や、急なオン/オフ切り替えを防ぐのに役立ちます。効果を発揮するには 0 より大きい必要があります。0（デフォルト）に設定すると、条件が false になった時点で直ちに終了します。。
* output

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/continue_if@v1",
	    "condition_statement": {
	        "statements": [
	            {
	                "comparator": {
	                    "type": "(Number) =="
	                },
	                "left_operand": {
	                    "operand_name": "left",
	                    "type": "DynamicOperand"
	                },
	                "right_operand": {
	                    "type": "StaticOperand",
	                    "value": 1
	                },
	                "type": "BinaryStatement"
	            }
	        ],
	        "type": "StatementGroup"
	    },
	    "evaluation_parameters": {
	        "left": "$inputs.some"
	    },
	    "next_steps": [
	        "$steps.on_true"
	    ],
	    "stop_delay": 5
	}
```

</details>
