提供:Japanese Scratch-Wiki

もし () ならから転送)

このきじは ひらがなでよめます。ひらがなでよむ
もし () なら
もし <> なら
カテゴリ 制御
タイプ C型
追加 Scratch 0.1

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

使用例

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

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

別のブロックによる表現

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

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

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

よくある間違い

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

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

逆にこれを利用して、次のようにすることで旗とキーを同時押ししたときにのみスクリプトを実行することもできる。

@greenFlag が押されたとき::events hat
もし<(スペース v)キーが押された>なら
(無敵モード起動 v)を送る
end

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

出典

関連項目

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。