更新日:、 作成日:

スクラッチ ループをスキップしたり中断する

はじめに

Scratch (スクラッチ) 3 のループをスキップしたり中断する方法を紹介します。

スキップとは、ループの処理を 1 回飛ばすことです。continue 文とも言います。

中断とは、その時点でループを抜けることです。break 文や Exit 文とも言います。

ループの使い方は「繰り返す、ループ for 文」をご覧ください。

ループをスキップする continue

for-loop

回数を指定してループをするときに、そのループ回数によってループ処理をしたくないときがあります。一般的なプログラミング言語では「continue 文」などを使用して 1 回だけループをスキップできます。

もし~なら、でなければ ブロックを使って、ループをスキップできます。

完成例

ループの 1 回目だけをスキップする例を紹介します。

4

簡単に説明すると、変数にループ回数を設定します。 もし~なら、でなければ ブロックにスキップする条件を指定して、条件に一致するときに何もしないことでスキップします。

スキップ

スキップするときとループ本来の処理で分岐します。

[もし~なら、でなければ] ブロックを使って処理を分けます。

1

1 回目のループをスキップします。

変数にループ回数を設定します。この変数のことを一般的に「インデックス」と言います。

2

1 回目のループを条件にします。

3

[でなければ] にループ処理を追加して完成です。

ループを中断する break

until-loop

ループをしているときに、本来の終了条件とは別に途中でループを抜けたいことがあります。 このスクリプトを止める ブロックを使うと、処理そのものが終了してしまうため使用できません。一般的なプログラミング言語では「break 文」や「Exit 文」などで中断できます。

スクラッチでは中断する機能がありませんが、残りのループをすべてスキップして中断できます。

完成例

x座標が 50 より大きくなった時にループを中断する例を紹介します。

5

簡単に説明すると、変数に中断するかどうかを設定します。外側の もし~なら、でなければ ブロックで中断するときはループをすべてスキップします。内側の もし~なら、でなければ ブロックで中断する条件に一致するか判定します。

中断

中断するときとループ本来の処理で分岐します。

6

中断するときはループをすべてスキップします。

中断する条件を作成します。

8

条件に一致するときは変数に「true」を設定します。変数の初期値は一致していない「false」を設定します。

9

中断するときはすべてスキップするために、外側に [もし~なら、でなければ] ブロックを作成します。中断するときはスキップします。

7

内側の [でなければ] にループ処理を追加して完成です。