提供: Japanese Scratch-Wiki

2017年3月18日 (土) 10:14時点における2003kaito (トーク | 投稿記録)による版

もし () なら
カテゴリ 制御
タイプ C型

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


フォーラム、Wikiでの表現方法

  • <scratchblocks>もし <> なら

end </scratchblocks>

使用例

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

  • 値を比較する
もし <(答え) = [5]> なら
 [正解!]と言う
end
  • 入力されたかどうかを調べる
もし <<マウスが押された> かつ <(合計) = [1]>> なら
スタンプ
end
  • オブジェクトを制御する
もし <[スペース v] キーが押された?> なら
 [ジャンプ v]を送る
end

別のブロックによる表現

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

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

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


よくある間違い

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

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

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

引用

参照

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