繰り返し

バージョン

この記事の対象バージョンは2.0です。

同じ命令の組み合わせが続く

以下は猫を少しずつ歩かせるプログラムです。
	
scratch_0022

次はもっと長い距離を歩かせるように変更したプログラムです。

scratch_0023

このプログラムには「10歩動かす」と「1秒待つ」の二つの命令しか
使っておらず、なおかつその命令を交互に組み合わせています。
その結果、同じ命令の組み合わせが続いていることが分かると思います。
このように命令を組み合わせている中で同じ組み合わせが続く場合が
プログラムの中では多々あります。

繰り返し命令

先ほどのプログラムでは同じ命令の組み合わせを10回繰り返しています。
もし、猫を画面端から画面端まで移動させたいと考えた場合
ものすごく長い命令を作る必要があります。
同じ命令の組み合わせ(動くと待つ)がずっと並んでいる単純な作業なので、
できないことはありませんが、命令が見づらくなったり、
同じ命令が続くので数を間違えたりと様々な問題が発生する可能性があります。

scratch_0024

このような場合に使用するのが、「同じ命令を繰り返す命令」です。
スクリプトの「制御」の項目にあります。
繰り返す系の命令は命令ブロックに「空白」部分があるので、
繰り返させたい命令をそこに入れます。

scratch_0025

○○回繰り返す

scratch_0028

「○○回繰り返す」は○○の部分に繰り返したい数を入力したら
その数だけ中に入れた命令を繰り返してくれる命令です。

scratch_0029

上の命令では「10歩動かす」と「1秒待つ」が10回繰り返されます。

ずっと

scratch_0026

「ずっと」は言葉通り、終わることなくずっと命令が繰り返されます。

scratch_0027

上の命令では「10歩動かす」「回転方法を左右のみにする」
「もし端に着いたら、跳ね返る」「0.1秒待つ」がずっと繰り返されます。

○○まで繰り返す

scratch_0030

「○○まで繰り返す」は条件が達成されるまで命令が繰り返されます。
条件は「マウスが押される」「スペースキーが押される」等です。

scratch_0031

上の命令では、スペースが押されるまで「10歩動かす」「回転方法を左右のみにする」
「もし端に着いたら、跳ね返る」「0.1秒待つ」が繰り返されます。
条件指定は全てのブロックを設定できるわけではなく、
以下のような形のブロックが設定可能となっています。

scratch_0032