---
navigation:
  title: "フローコントロール"
  icon: "pneumaticcraft:textures/progwidgets/jump_piece.png"
  parent: pneumaticcraft:programming.md
---

# フローコントロール

[ドローン](../tools/drone.md)が展開されると、すぐに保存されているプログラムの実行が開始されます。実行フローは次のように発生します:
- プログラムは*常に*、[開始](./start.md)ウィジェットから開始されます。このウィジェットは1つしか存在できません。
- フローは通常*下向き*、つまり現在のウィジェットの下部に接続されているウィジェットに進みます。


- ウィジェットは*完了*と判断するまで指定された操作を実行します。「完了」の定義はウィジェットごとに異なり各ウィジェットのページで説明されています。
- 現在のウィジェットの下部にウィジェットが接続されていない場合、実行は[開始](./start.md)ウィジェットに戻ります。

これが基本です。ただし、次に説明する特別なケースがいくつかあります...

## フローコントロールウィジェット


- [ラベル](./label.md)ウィジェットはプログラム内のジャンプ先のポイントとして機能します。
- [ジャンプ](./jump.md)ウィジェットは一致する*ラベル*ウィジェットへの即時かつ無条件のジャンプをトリガーします。
- [条件](./conditions.md)ウィジェットはテストしている条件に基づいてジャンプをトリガーできます。
- 高度な[アイテムループ](./for_each_item.md)ウィジェットと[座標ループ](./for_each_coordinate.md)ウィジェットは入力のリストに対して*ラベル*に繰り返しジャンプします。

フローコントロールに影響する特別なウィジェットがさらにいくつか存在します:
- [待機](./standby.md)ウィジェットは別のウィジェットが実際に何かするまでドローンを「スリープ」状態にします。
- [自殺](./suicide.md)ウィジェットは*ドローン*をアイテムとしてドロップし、実行を直ちに終了します。

