【Scratch入門】繰り返しのテクニックを覚える〜最適なループブロックを選択しよう
※ 当ページには【広告/PR】を含む場合があります。
2022/12/18

Scratchで処理をループさせるにはいくつか種類があります。
昔からC言語の方面でも、forループ、whileループ、do~whileループなど処理を繰り返す文法構文もそれぞれに一長一短があるように、Scratchのループブロックも使い所考える必要があります。
今回は、Scratchで使う
Scratchの3つのループブロック
主にScratchで使うループ処理の種類は以下の3つに分類され、基本的に「ループ」といえばこの3つのブロックを指します。
1. 「*回繰り返す」ブロック
2. 「ずっと」ブロック
3. 「*まで繰り返す」ブロック
コーディングとしては
[コード]タブ > [制御]

この3つは基本的には、
したがって、どのブロックを使うのが正しい、という話ではないのですが、最終的に他の人がコードを見たときに出来栄えの良いプログラムでは、
①〜③
良いプログラムとは、プログラマーの慣れやテクニック・センスによるところが大きいので、プログラミングの基礎となるループ処理も細かいことですが、しっかり身につけていきましょう。
以下の節ではブロックごとにその特徴を確認してみます。
FORループブロック
繰り返し処理の「回数」が決まっている場合、

のブロックを使います。
便宜上、ここでは
for
for
特徴としては、ループの終了条件などを深く考える必要がなく、何回で処理が終わるか一目で分かるため、シンプルなアルゴリズムで使うのに向いています。
逆に処理の終了条件が複雑(動的)に変わるループ処理には向かない構文です。
簡単にプログラム例を上げてみましょう。
Scracthプロジェクトを新規作成して、ネコのスプライトに以下のコードを挿入します。

すると、FORブロックの中の処理を単純に10回繰り返すことが分かります。
無限ループブロック
次に、際限なく、とりあえずずっと処理させておきたいというときには、以下のブロックを使います。

その名の通り、プログラムかスクリプトを止めるまで「ずっと」ループ処理をし続けるブロックです。
この記事ではこのブロックを
このブロックはプログラムの大黒柱となる
「メイン処理」
こちらもScratchプロジェクトを新規作成して、ネコのスプライトに以下のブロックコードを作成してみます。

出来たらプログラムをスタートしてみましょう。
無限ループ処理ですので、一度スタートしたプログラムは、停止ボタンを押す以外では止めることが出来ません。
基本的に、“止まってほしくない”処理や、イベント・変数などを“常に監視したい”処理など、重要な役目のあるループ処理に使いましょう。
WHILEループブロック
もう一つ、以下のように終了条件を与えてそれを満たすまではずっと処理するタイプの繰り返し制御のブロックもあります。

こちらも先程の説明した
For
While
ということでここではこのブロックを
一般的にWhile構文は、ループ処理の
「継続条件」
他方で、ScratchのWHILEブロックは、継続条件ではなく、一種の
「終了条件」
「○○まで繰り返す」
なお、ScratchのWHILEブロックは、終了条件が永遠にTrueにならない場合、先ほどの無限ループブロックと同じ処理になります。
では、このWHILEブロックを使ったループ処理のユースケース(利用例)を簡単に上げておきます。
新しいScratchプロジェクトを立ち上げて、ネコのスプライトに以下のブロックコードを追加します。

コードが出来たら、このプログラムをスタートしてみましょう。
先程の無限ループブロックとは違い、終了条件(=ここではマウスクリック)が真(True)になったとき、このループ処理が終了することが確認できます。
WHILEブロックは、イベント処理待ち中の別の処理などに利用することができます。
まとめ
今回はScratchプログラミングの中でも基礎の中の基礎である
とりあえずどれを使うのが正しい、ということではありませんので、Scratchに慣れるまではどのブロックでも好きに使ってみて、ベストな勘どころを徐々につかんでいきましょう。