> 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` ブロックを
   * If a `stop_delay` が設定されている場合、遅延終了を可能にするために現在時刻を記録します
5. 条件の評価結果が `false`:
   * 現在のワークフローブランチを終了します（このブランチ内の下流ブロックの実行を停止します）
   * If `stop_delay` が以前にトリガーされており、遅延期間が経過していない場合は、実行を `next_steps` 残りの遅延時間の間継続します
6. 実行を次のステップへ継続するか、ブランチを終了するフロー制御 निर्देशを返します

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

## 比較値

比較値を設定するまで、Workflow エディタは条件を保存しません。空の文字列と比較するには、値フィールドに入力する代わりに「空の文字列を使用」を選択してください。そのオプションが表示されるのは `==` と `!=` 比較演算子のみです。空の文字列は `startsWith`, `endsWith`、または `contains`.

## 一般的な使用例

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

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

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

* **検出または解析ブロックの後** （例: オブジェクト検出、分類、キーポイント検出）を使用して、検出数、信頼度スコア、クラス名、その他の予測結果を評価し、分析結果に基づいて条件付きで処理を継続します
* **データ処理ブロックの後** （例: プロパティ定義、式、デルタフィルタ）を使用して、計算値、メトリクス、または処理済みデータを評価し、その後続ブロックを実行するかどうかを制御します
* **通知ブロックの前** （例: 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` | クエリ言語の構文を使用して条件ロジックを定義します。評価する条件を指定します（例: 比較、等価チェック、数値比較）。条件は StatementGroup 構文で構築され、dynamic operands（evaluation\_parameters で参照される）を (Number) ==、(Number) >、(Number) <、(String) == などの比較演算子を使って静的値と比較する二項文で構成されます。例: 動的値 'left' を (Number) == を使用して静的値 1 と比較します.. | ❌  |
| `stop_delay`          | `float`          | 条件が false になってからブランチを終了するまで、実行を継続する秒数。条件が以前 true で、その後 false になった場合は、終了する前にこの遅延時間の間 next\_steps への実行を継続します。これは一時的な状態変化の処理や、急激なオン/オフ切り替えを防ぐのに役立ちます。効果を持たせるには 0 より大きくする必要があります。0（デフォルト）に設定すると、条件が false になったときに即座に終了します..                                            | ✅  |

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

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

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `Continue If` のバージョン `v1` あるか確認してください。

<details>

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

* 入力
  * `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` (*step*)：条件が true と評価された場合に実行するワークフローステップのリスト。これらのステップは条件が満たされたときにフロー制御を受け取り、ワークフローブランチが実行を継続できるようにします。空の場合、条件が true でもブランチは終了します。各ステップセレクタは、条件が通過したときに実行されるワークフロー内のブロックを参照します..
  * `stop_delay` ([*`float`*](/workflows/ja/gaido/developer-guide/kinds/float.md))：条件が false になってからブランチを終了するまで、実行を継続する秒数。条件が以前 true で、その後 false になった場合は、終了する前にこの遅延時間の間 next\_steps への実行を継続します。これは一時的な状態変化の処理や、急激なオン/オフ切り替えを防ぐのに役立ちます。効果を持たせるには 0 より大きくする必要があります。0（デフォルト）に設定すると、条件が false になったときに即座に終了します..
* 出力

</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>
