提供: Japanese Scratch-Wiki
(もし () なら、でなければから転送)
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
もし () なら、でなければ | |
もし <> なら . . . でなければ . . . end | |
カテゴリ | 制御 |
タイプ | C型 |
追加 | Scratch 0.6 |
もし () なら、でなければブロック(制御ブロック/C型ブロック)は、与えられた真偽条件を調べて、その結果が真(True:はい)なら、2つあるC型のスペースのうち、上のCにはさまれた部分のプログラムを実行する。そして実行が終われば、このブロックの下にあるコードに実行がうつる。真偽条件を調べた結果が偽(False:いいえ)なら、下のCにはされまれた部分のプログラムを実行する(この部分が、もし () ならブロックと違うので注意)。
使用例
プログラムをつくるとき、「条件を調べる」のはとても大事なことである。さらに、条件を調べた結果、偽(いいえ)になったときは、それに合わせた処理が必要という場合も多い。Scratchには条件を調べるブロックとしてもし () ならブロックも用意されているが、偽の場合の処理も決めておきたいときは、「もし () なら、でなければブロック」を使ったほうがわかりやすい。次によくある例を示す:
- 1つめのCに囲まれた部分か、2つめのCに囲まれた部分のどちらかを行う場合
<(端 v)に触れた>まで繰り返す もし<(音量) > [30]>なら [もー、静かにしてよ] と (2) 秒言う でなければ (10) 歩動かす end end
- スプライトの体力が決められた値以下になったらゲームオーバー、そうでなければ、何かを行う
@greenFlag が押されたとき::events hat ずっと もし<(体力) = [0]> なら (負け v)の音を鳴らす [すべてを止める v] でなければ (攻撃 v)を送る end
もし <(答え) = [5]> なら [正解!] と (2) 秒言う でなければ 終わるまで (任務失敗 v) の音を鳴らす [すべてを止める v] end
- 状況(たとえば変数の値)によって結果が変わるスクリプト
もし <[#7092be]色に触れた> なら [水を見つけたぞ!]と言う でなければ []と言う end
別のブロックによる表現
- 詳細は「代用ブロック一覧」を参照
このブロックの動作は、次のようにブロックを組んだ場合と同じである:
- 代用1
[アクション v] を (0)にする もし <条件::grey> なら [アクション v] を (1)にする . . . //条件が真(はい)のときの処理 end もし<(アクション) = (0)> なら . . . //条件が偽(いいえ)のときの処理 end
- 代用2
[もし~なら でなければ v]を受け取ったとき もし <条件::grey> なら . . . // 条件が真(はい)のときの処理 (続行 v)を送る [このスクリプトを止める v] end . . . // 条件が偽(いいえ)のときの処理 (続行 v)を送る [続行 v]を受け取ったとき . . .
- 代用3
もし <条件::grey> なら ...//条件が真(はい)のときの処理 end もし <<条件::grey>ではない> なら ...//条件が偽(いいえ)のときの処理 end
提案
複数のScratcherから、与えられた条件が真なら1つめの値、偽なら2つめの値を返す値ブロックを取り入れるよう提案がなされている。[1]
(もし <> なら [] でなければ []::operators)
もしも実現すれば、 これは演算 カテゴリーのブロックとなるだろう。
mod版Scratchの中には、このようなブロックが存在するものもある(例:Insanity)。
関連項目
出典
() 秒待つ • () 回繰り返す • ずっと • もし () なら • もし () なら, でなければ • () まで待つ • () まで繰り返す • () を止める • クローンされたとき • () のクローンを作る • このクローンを削除するその他のブロック
|