提供: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]。条件を何度も繰り返し調べてほしい場合は、ずっとによる繰り返しを使う必要がある。
逆にこれを利用して、次のようにすることで旗とキーを同時押ししたときにのみスクリプトを実行することもできる。
@greenFlag が押されたとき::events hat もし<(スペース v)キーが押された>なら (無敵モード起動 v)を送る end
Scratch 1.4に存在したもし () なら、ずっとブロックは、上記のような誤解された「もし () ならブロック」の動作をしていた。
出典
関連項目
() 秒待つ • () 回繰り返す • ずっと • もし () なら • もし () なら, でなければ • () まで待つ • () まで繰り返す • () を止める • クローンされたとき • () のクローンを作る • このクローンを削除するその他のブロック
|