![見出し画像](https://assets.st-note.com/production/uploads/images/127877282/rectangle_large_type_2_4604ece959eda05e0dc24020587c38d3.png?width=800)
UiPath Academy RPAデベロッパー基礎⑰ 制御フローとは ループ
今日もUiPath Academyの「RPAデベロッパー基礎」で学習していきます
ループ
ループは、条件に基づいて一連の命令を繰り返す制御フロー
実際には、ループは反復的な作業を自動化するために使用
たとえば、添付ファイルのあるメールのチェック、請求書リストからの情報抽出、Excel から CRM アプリケーションへの一連の顧客プロファイルの転送など
UiPath におけるループは、[繰り返し (前判定) (While)]、[繰り返し (後判定) (Do While)]、および [繰り返し (コレクションの各要素) (For Each)] アクティビティを使用したもの
[繰り返し (前判定) (While)]
条件が満たされている間、特定のシーケンスが実行される
条件は、[本文 (Body)] 内の実行前に評価
たとえば、ロボットがトランプでブラックジャックをする場合、別のカードを引くかどうかを決定する前に手札を計算するようにできる
![](https://assets.st-note.com/img/1705390984411-4ot0ZQKA9d.png)
[繰り返し (後判定) (Do While)]
条件が満たされている間、特定のシーケンスが実行される
条件は、[本文 (Body)] 内の実行後に評価
たとえば、ロボットは Web サイトで更新コマンドを実行し、関連する要素が読み込まれたかどうかを確認できる
要素が読み込まれるまで、更新とチェックのサイクルが継続
[繰り返し (後判定) (Do While)] と [繰り返し (前判定) (While)] の主な違いは、[繰り返し (後判定) (Do While)] の場合、その中に含まれるアクティビティが少なくとも 1 回実行されるということ
![](https://assets.st-note.com/img/1705391149740-lq2RSLQDRp.png)
[繰り返し (コレクションの各要素) (For Each)]
入力コレクションの各要素に対して 1 つまたは一連のアクティビティを実行
これは、データ処理に非常に便利
たとえば、整数配列に対して [繰り返し (コレクションの各要素) (For Each)] を使用すると、ロボットは各数値が特定の条件を満たしているかどうかを確認できる
![](https://assets.st-note.com/img/1705391222131-T4HEoDcxOT.png?width=800)
ループを終了するには
[繰り返し (前判定) (While)] と [繰り返し (後判定) (Do While)] アクティビティによるループは、チェック時に条件が満たされなくなった場合に終了
[繰り返し (コレクションの各要素) (For Each)] アクティビティによるループは、入力コレクション内の各要素の処理を完了したときに終了
[繰り返しを終了 (Break)] アクティビティは、選択したポイントで現在のループ系アクティビティ ([繰り返し (コレクションの各要素) (For Each)]、[繰り返し (前判定) (While)]、または [繰り返し (後判定) (Do While)] を終了し、ワークフローで後続のアクティビティを実行できるようにする
デモ:うるう年のワークフローに、ユーザーがうるう年を入力するまで実行を繰り返すループを追加
[繰り返し (前判定) (While)] アクティビティは、最初に条件をチェックし、 True の場合は [本文 (Body)] 内の一連のアクションを実行
一方、[繰り返し (後判定) (Do While)] アクティビティはアクションを実行してから条件をチェックし、True の場合はアクティビティを再度実行
西暦を尋ね、その年がうるう年かどうかを確認するシーケンス ワークフローを作成
うるう年でない場合は、メッセージを表示してから再度ユーザーに西暦を入力させる
入力された年がうるう年であれば、それを知らせるメッセージをユーザーに表示し、ループ処理を終了して停止
❶[繰り返し (後判定)] アクティビティを追加
![](https://assets.st-note.com/img/1705392227782-EHFAzSJXIX.png?width=800)
ループの [本文 ] 内に[入力ダイアログ] アクティビティと [条件分岐] アクティビティを移動
[代入] アクティビティを追加して、[条件分岐] にある [条件 ] の式の結果を、変数 IsLeapYear に渡す
![](https://assets.st-note.com/img/1705392930851-XOewOBDnLM.png?width=800)
![](https://assets.st-note.com/img/1705392987548-LtqAnipwMv.png)
フローチャート ワークフロー
必要な変更は、うるう年でないことを知らせる [メッセージ ボックス ] アクティビティ「Print Result False (不合致)」から、[入力ダイアログ ] アクティビティに矢印をドラッグするだけ
![](https://assets.st-note.com/img/1705451824736-nM4OnLmAIy.png?width=800)
この記事が気に入ったらサポートをしてみませんか?