同じ処理を何回も実行する繰り返しの構文の一つ「繰り返し(後判定)」アクティビティについてです。
1.アクティビティのプログラム名
System.Activities.Statements.DoWhile
2.説明
Studio バージョン ~2.0.2.0
クイックアクセス: 「ツールボックス」 > 「コントロールフロー」 > 「繰り返し(後判定)」
Studio バージョン 2.0.3.0~
クイックアクセス: 「ツールボックス」 > 「システム」 > 「コントロールフロー」 > 「繰り返し(後判定)」
条件が満たされている間、指定した処理を繰り返すアクティビティです。繰り返すよう指定した処理の実行後に判定を行うため、どのような条件を指定しても、指定した処理は少なくとも1回実行されます。
※動作を確認したコボットStudioのバージョン:2.0.1.6
※バージョンによって文言などが一部異なる場合がございます
3.プロパティ
プロパティ項目 | プロパティ名 | 入力欄 | 説明 |
---|---|---|---|
その他 | パブリック | チェック項目 | ログにアクティビティ内の変数と引数がログファイルに書き込まれ、Centerにプッシュされる。(詳細は「プロパティ項目「パブリック」について」を参照) |
条件 | 条件を入力(Boolean型) | 条件がTrueの間繰り返し処理が実行される。 | |
表示名 | 値を入力(String型) | デザイナーパネルのアクティビティ名に反映される。 |
4.使い方
「繰り返し(後判定)」アクティビティを使用し、1~100までのいずれかの数字を、奇数が表示されるまで繰り返しメッセージボックスに表示するロボットを作成してみましょう。
まず、処理の開始を案内するメッセージボックスを配置します。アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
アクティビティ内「テキスト」に、実行開始を案内するメッセージ「"1~100までのいずれかの数字を、奇数が表示されるまで繰り返し表示します。"」を指定します。(プロパティパネルの「入力 > テキスト」からも可能です。)
アクティビティ「コントロールフロー > 繰り返し(後判定)」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
「Body」に繰り返し実行したい処理を記述します。今回の例では「1~100までのいずれかの数字をメッセージボックスに表示する」処理になります。「Condition」には繰り返すための条件を指定します。指定した条件がTrueになる場合、Body内に記述した処理を繰り返し実行します。今回の例では「偶数の場合」となります。「Condition」が「Body」より後に配置されているため、条件に関係なく、少なくとも1回「1~100までのいずれかの数字をメッセージボックスに表示する」処理が行われます。
「Body」内に繰り返す処理を配置していきます。アクティビティ「コントロールフロー > シーケンス」をツールボックスからデザイナーパネルの「Body」内にドラッグ&ドロップで配置します。
「シーケンス」内に繰り返す処理を配置していきます。まずは「1~100までのいずれかの数字」を取得する処理です。アクティビティ「オリジナル > 代入」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
アクティビティ内の左辺「代入先」に「いずれかの数字」を格納する変数名を指定します。(プロパティパネルの「その他 > 代入先」からも設定できます。)変数が作成されていない場合、「変数の作成」を行い指定します。変数の型は「Int32」です。
Random().Next()関数に下限値と上限値を指定すると、指定した範囲内のランダムな整数が生成されます。アクティビティ内の右辺「値」に「new Random().Next(1,100)」と入力します。(プロパティパネルの「その他 > 値」からも設定できます。)
取得した整数の表示です。アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置し、アクティビティ内「テキスト」に「randomNumber.ToString」を指定します。(プロパティパネルの「入力 > テキスト」からも可能です。)
「Body」内の処理を繰り返す条件を指定します。今回の例では、偶数の場合Bod内の処理を繰り返したいため「取得した整数を2で割ったときの余りが0」を条件に指定します。「Condition」に「randomNumber Mod 2 = 0」を指定します。「Mod」はモジュロ演算子(剰余演算子)です。除算した余りを取得します。
繰り返し(後判定)アクティビティの設定ができました。繰り返し処理を抜けた後、終了するメッセージを表示しましょう。アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置し、アクティビティ内「テキスト」に「randomNumber.ToString + "は奇数のため終了しました。"」を指定します。(プロパティパネルの「入力 > テキスト」からも可能です。)
「ホーム > スタート」をクリック、または、「F5キー」押下で実行します。
実行結果です。奇数が表示されるまでメッセージボックスが表示されます。(ランダムに整数を取得しているため、繰り返す回数と表示される整数は実行のたびに異なります。)
●開始メッセージ
●Body内の「奇数が表示されるまで繰り返し表示」の部分
●終了メッセージ