ビデオの内容紹介
While ループの使い方を具体例で説明しています。とても短いです。
原題 Blueprint Essentials – 13 – WhileLoop
下の画像が出来上がりのグラフですが、このようなグラフを作るための下準備については、前回の『ブループリントの基本的な構成要素⑫ ForEachLoop』の「★テスト用ブループリントの作成方法」にあるので、そちらを参照してください。
グラフ作成の注意点
配列変数 My Int Array は、初期値に何も入れていません。
グラフの意味
F キーを押すと WhileLoop が起動して、Condition (条件) につながっている条件が満たされるまで Loop Body につながっている処理を繰り返します。
この例では、ADD がつながっています。これは、配列の要素に値を追加 (格納) するものです。配列変数 My Int Array がつながっているので、この配列に値が追加されます。追加する値は、Random Integer (ランダムに生成される int 値) がつながっているので、ランダムに整数が生成されて配列要素に加わります。ただし、Random Integer の Max が 1000 となっているように、1000 以下の整数値が作られることになります。
WhileLoop の Condition につながっている条件が満たされなくなると、ループから抜けて、Completed (完了) につながっている処理が実行されます。
Condition につながっている列では、配列変数 My Int Array が LENGTH (長さ) ノードにつながっているので、この配列の長さ (言い換えれば、配列に入っている値の個数) を調べています。そして < につなげて 20 よりも小さいことをループが継続するための条件 (Condition) としています。つまり、配列の個数が 20 未満の時にはループが繰り返されます。 Completed につながっている ForEachLoop が起動すると、My Int Array の要素 (20 個あります) それぞれについて、Loop Body につながっている処理が繰り返されます。 ForEachLoop の Loop Body につながっている Print String には、ForEachLoop の Array Element (配列の要素) が供給されています。つまり、配列要素の中身が、途中、整数値が文字列に変換されて Print String に供給されます。だから次のような結果となります。
ForEachLoop が完了 (Completed) すると (=My INt Array の配列要素すべてについて処理が完了すると)、Clear が実行されます。
Clear は、配列に入っている要素すべてがクリア (除去) されます。たとえば、
配列[0]=593、配列[1]=97、配列[2]=204
となっていたのが、
配列要素が存在せず
の状態になります。
実験
Clear を使わないとどうなるか?
F キーを何回押しても、同じ結果が 20 個表示されるだけです。たとえば、
593、97、204
と表示されたら、何回 F キーを押しても
593、97、204
と表示されます。ランダムに内容が変化することはありません。
理由は、配列に入っている値が Clear されないでそのまま残るため、配列の長さは 20 のままなので、WhileLoop の Condition (条件) につながっている LENGTH がいつまでたっても 20 と判定して、常に Completed (完了) が起動して、Loop Body は起動せず、新たにランダムな整数値が供給されないからです。
その様子を視覚化したものが次のグラフです。
これは、一見ごちゃごちゃしていますが、実際は単純です。ForEachLoop の Loop Body で、配列の中身を表示するたびに配列の長さも表示して (黄色で)、ForEachLoop の Completed でも同様に配列の長さを表示しています (赤で)。結果は、次のようになります。
20 個のペア (配列の長さと値のペア) すべてが表示されていませんが (画面の大きさにより)、配列の長さがずっと 20 (黄色) であり、最後に 0 (赤) になっていることが分かります。
今回はここまでです。ご静聴ありがとうございました。