こちらは、スクラッチの「◇まで繰り返す」ブロックの使い方を、詳しく徹底解説しています!
「◇まで繰り返す」ブロック
「◇まで繰り返す」ブロックは、指定した条件を満たすまで、中に入れたブロックの処理を繰り返し実行します。
◇に入るのは、「条件・状態」を意味する六角形のブロック「真偽ブロック」が入ります。(Scratchのブロックの種類と役割について)
真偽ブロックは、真(True)または、偽(False)のいずれかの「条件・状態」を持つブロックです。
つまり、「◇まで繰り返す」ブロックは、「指定した条件を満たす=真(True)」になるまで繰り返すブロックということです。
真(True)になると、繰り返し処理から抜け出して、「◇まで繰り返す」ブロックの下にあるブロックが処理されていきます。
例えば、こちらは「〇>〇(大なり)」ブロックを使って、x座標が240を超えるまで、10歩動かすスクリプトです。
こちらを実行すると、x座標が240を超えた「243」で処理が終わりました。
つまり、条件を満たした(=真)ので、繰り返し処理から抜け出したというわけです。
無限ループ
無限ループとは、プログラムが同じ処理を繰り返して、終了できない状態になることを指します。
スクラッチの無限ループと言えば、「ずっと」ブロックです。
「ずっと」ブロック、中に入れたブロックの処理を繰り返し実行するブロックです。
こちらは、意図して利用するので、「〇を止める」ブロックを使って、強制終了する手段を別で作っておけば、特に問題ありません。
「◇まで繰り返す」ブロックは、指定した条件を設定する必要がありまり、その条件を満たさなければ無限ループに陥ってしまいます。
例えば、こちらは先ほどの例のスクリプトの続きです。
今回は、x座標が400を超えるまで、10歩動かすスクリプトに変更しています。
こちらを実行すると、スクラッチキャットは画面から見切れたところまで歩き、それ以上進むことができません。
x座標も「272」から一向に進まないため、条件は満たされず(=偽)、無限ループに陥っています。
「◇まで繰り返す」ブロックを使う場合は、このように無限ループにならないよう気を付けましょう。
制御ブロック一覧
「制御」ブロックには、以下の11個のブロックが用意されています。
- ハットブロック・・・1つ
- スタックブロック・・・3つ
- C型ブロック・・・5つ
- キャップブロック・・・2つ
ブロックの色は、山吹色で統一されています。
主に何かの処理をした場合に、発生するイベントの条件分岐で利用されるプログラムになっています。
制御ブロック | 動作 |
---|---|
〇秒待つ プログラムの処理を指定した秒数だけ一時停止する |
|
〇回繰り返す 指定した回数だけ中に入れたブロックの処理を繰り返し実行する |
|
ずっと 中に入れたブロックの処理を繰り返し実行する |
|
もし◇なら 指定した条件を満たしていれば、中に入れたブロックを実行する |
|
もし◇なら▢でなければ 指定した条件を満たしていれば1番目のC型の中に入れたブロックを実行し、条件を満たしていなければ2番目のC型の中に入れたブロックを実行する |
|
◇まで待つ 指定した条件を満たすまでプログラムを一時停止する |
|
◇まで繰り返す 指定した条件を満たすまで、中に入れたブロックの処理を繰り返し実行する |
|
〇を止める 指定したスクリプトを止める |
|
クローンされたとき クローンされたときに下のブロックを実行する【スプライトのみ】 |
|
〇のクローンを作る 指定したスプライトのクローンを作る |
|
このクローンを削除する クローンを削除する【スプライトのみ】 |