提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。編集者向け:作成する
もし () なら
もし <> なら
カテゴリ 制御
タイプ C型

もし () ならブロック制御ブロックC型ブロック)は、真偽ブロックとして与えられた条件が成り立っているかどうかを調べ、条件が真(true:はい)になるときに、中のブロックを実行する(内部のプログラム(スクリプト)に処理が移動する)。条件が偽(false:いいえ)になるときは、このブロックの中にあるブロックは無視されて、このブロックの下につなげたブロックに実行がうつる(この点が、もし () なら、でなければブロックとは違う)。条件を調べるのは一度きりなので、中にあるプログラムを実行している間に条件が偽(いいえ)になったとしても、中身のプログラムは最後まで実行される。

使用例

プログラムをつくるとき、「条件を調べる」のはとても大事な作業であるが、このブロックを使えば、一番シンプルに条件を調べることができる。そのため、このブロックはScratchプログラムのありとあらゆる場面で使用されている。次によくある例を示す:

  • 値を比較する
もし <(答え) = [5]> なら
[正解!]と言う
end
  • 入力されたかどうかを調べる
もし <<マウスが押された> かつ <(合計) = [1]>> なら
スタンプ
end
  • 物体を制御する
ずっと
もし <[スペース v] キーが押された> なら
[ジャンプ v]を送る
end
もし <[右向き矢印 v] キーが押された> なら
x座標を(10)ずつ変える
end
もし <[左向き矢印 v] キーが押された> なら
x座標を(-10)ずつ変える
end

別のブロックによる表現

詳細は「代用ブロック一覧」を参照

このブロックの動作は、次のようにブロックを組んだ場合と同じである:

もし <条件> なら
...
でなければ
//ここには何も入れない
end

よくある間違い

「このブロックを使ったスクリプトがなぜか動かない」と悩んでいる人を見かけることが時々あるが、その場合、ありがちな理由が、「このブロックが条件を繰り返し調べると勘違いしている」というものだ。[1][2]条件を何度も繰り返し調べてほしい場合は、ずっとによる繰り返しを使う必要がある。

Warning メモ: () まで繰り返す () 回繰り返すブロックでも繰り返し条件を調べることができるが、これらを使った場合は常に条件を調べ続けるわけではない(そのうち終わってしまう)。

Scratch 1.4に存在したもし () なら、ずっとブロックは、上記のような誤解された「もし()ならブロック」の動作をしていた。

引用

  1. scratch:discuss/topic/14843/
  2. scratch:discuss/topic/26823/?page=1#post-237085

関連項目