提供: Japanese Scratch-Wiki

 
(4人の利用者による、間の10版が非表示)
1行目: 1行目:
{{ブロック
+
{{ひらがなヘッダ}}{{ブロック
 
| name = もし () なら
 
| name = もし () なら
| image = File:2.0 もし () なら.png
+
| block = <sb>もし <> なら</sb>
| imagewidth = 71
 
 
| category = [[制御ブロック|制御]]
 
| category = [[制御ブロック|制御]]
 
| type = [[C型ブロック|C型]]
 
| type = [[C型ブロック|C型]]
 +
| added = 0.1
 
}}
 
}}
'''もし () なら''' [[ブロック|ブロック]]([[制御ブロック]]/[[C型ブロック]])は、 [[真偽ブロック]]として与えられた条件が成り立っているかどうかを調べ、条件が真(true:はい)になるときに、中のブロックを実行する(内部のプログラム(スクリプト)に処理が移動する)。条件が偽(false:いいえ)になるときは、このブロックの中にあるブロックは無視されて、このブロックの下につなげたブロックに実行がうつる(この点が、[[もし () なら、でなければ (ブロック)|もし () なら、でなければ]] ブロックとは違う)。条件を調べるのは一度きりなので、中にあるプログラムを実行している間に条件が偽(いいえ)になったとしても、中身のプログラムは最後まで実行される。
+
'''もし () なら'''[[ブロック]]([[制御ブロック]]/[[C型ブロック]])は、[[真偽ブロック]]として与えられた条件が成り立っているかどうかを調べ、条件が真(true:はい)になるときに、中のブロックを実行する(内部のプログラム(スクリプト)に処理が移動する)。条件が偽(false:いいえ)になるときは、このブロックの中にあるブロックは無視されて、このブロックの下につなげたブロックに実行がうつる(この点が、[[もし () なら、でなければ (ブロック)|もし () なら、でなければ]]ブロックとは違う)。条件を調べるのは一度きりなので、中にあるプログラムを実行している間に条件が偽(いいえ)になったとしても、中身のプログラムは最後まで実行される。
 
+
<!--
<--[[Scratch 2.0]]以前では、英語版のこのブロックはif ()だった。  # 日本語版での表記が不明なのでコメントアウト-->
+
#日本語版での表記が不明なのでコメントアウト
 +
[[Scratch 2.0]]以前では、英語版のこのブロックはif ()だった。
 +
-->
 +
==使用例==
 +
プログラムをつくるとき、「条件を調べる」のはとても大事な作業であるが、このブロックを使えば、一番シンプルに条件を調べることができる。そのため、このブロックはScratchプログラムのありとあらゆる場面で使用されている。次によくある例を示す:
  
==フォーラム、Wikiでの表現方法==
 
*&lt;scratchblocks&gt;もし <> なら
 
 
end &lt;/scratchblocks&gt;
 
 
==使用例==
 
プログラムをつくるとき、「条件を調べる」のはとても大事な作業であるが、このブロックを使えば、一番シンプルに条件を調べることができる。そのため、このブロックはScratchプログラムのありとあらゆる場面で使用されている。 次によくある例を示す:
 
 
*値を比較する
 
*値を比較する
 
 
<scratchblocks>
 
<scratchblocks>
 
もし <(答え) = [5]> なら
 
もし <(答え) = [5]> なら
[正解!]と言う
+
[正解!]と言う
 
end
 
end
 
</scratchblocks>
 
</scratchblocks>
  
 
*入力されたかどうかを調べる
 
*入力されたかどうかを調べる
 
+
{{拡張機能使用|pen}}
 
<scratchblocks>
 
<scratchblocks>
 
もし <<マウスが押された> かつ <(合計) = [1]>> なら
 
もし <<マウスが押された> かつ <(合計) = [1]>> なら
33行目: 29行目:
 
</scratchblocks>
 
</scratchblocks>
  
*オブジェクトを制御する
+
*物体を制御する
 
 
 
<scratchblocks>
 
<scratchblocks>
もし <[スペース v] キーが押された?> なら
+
ずっと
[ジャンプ v]を送る
+
もし <[スペース v] キーが押された> なら
 +
[ジャンプ v]を送る
 +
end
 +
もし <[右向き矢印 v] キーが押された> なら
 +
x座標を(10)ずつ変える
 +
end
 +
もし <[左向き矢印 v] キーが押された> なら
 +
x座標を(-10)ずつ変える
 
end
 
end
 
</scratchblocks>
 
</scratchblocks>
44行目: 46行目:
 
{{メイン|代用ブロック一覧}}
 
{{メイン|代用ブロック一覧}}
 
このブロックの動作は、次のようにブロックを組んだ場合と同じである:
 
このブロックの動作は、次のようにブロックを組んだ場合と同じである:
 
 
<scratchblocks>
 
<scratchblocks>
 
もし <条件> なら
 
もし <条件> なら
. . .
+
...
 
でなければ
 
でなければ
 
//ここには何も入れない
 
//ここには何も入れない
 
end
 
end
 
</scratchblocks>
 
</scratchblocks>
 
+
<!--
<!-- 英語版から持ってきた例だが、不正確と思われるのでコメントアウト
+
英語版から持ってきた例だが、不正確と思われるのでコメントアウト
 
ほかに、次のような方法もある。
 
ほかに、次のような方法もある。
  
 
<scratchblocks>
 
<scratchblocks>
. . .
+
...
[もし〜なら v] を送って待つ
+
[もし〜なら v]を送って待つ
. . .
+
...
  
[もし〜なら v]を受け取ったとき
+
[もし〜なら v] を受け取ったとき
<条件>まで繰り返す
+
<条件> まで繰り返す
[このスクリプト v]を止める
+
[このスクリプト v] を止める
 
end
 
end
. . .
+
...
 
</scratchblocks>
 
</scratchblocks>
 
-->
 
-->
 
 
==よくある間違い==
 
==よくある間違い==
「このブロックを使ったスクリプトがなぜか動かない」と悩んでいる人を見かけることが時々あるが、その場合、ありがちな理由が、「このブロックが条件を繰り返し調べると勘違いしている」というものだ。 <ref>http://scratch.mit.edu/discuss/topic/14843/</ref><ref>http://scratch.mit.edu/discuss/topic/26823/?page=1#post-237085</ref> 条件を何度も繰り返し調べてほしい場合は、[[ずっと|ずっとによる繰り返し]]を使う必要がある。
+
「このブロックを使ったスクリプトがなぜか動かない」と悩んでいる人を見かけることが時々あるが、その場合、ありがちな理由が、「このブロックが条件を繰り返し調べると勘違いしている」というものだ。<ref>[[scratch:discuss/topic/14843/]]</ref><ref>[[scratch:discuss/topic/26823/?page=1#post-237085]]</ref>条件を何度も繰り返し調べてほしい場合は、[[ずっと (ブロック)|ずっとによる繰り返し]]を使う必要がある。
{{Note|  [[() まで繰り返す]] と[[ () 回繰り返す]] ブロックでも繰り返し条件を調べることができるが、 これらを使った場合は常に条件を調べ続けるわけではない(そのうち終わってしまう)。}}
+
{{メモ|[[() まで繰り返す]]と[[ () 回繰り返す]]ブロックでも繰り返し条件を調べることができるが、これらを使った場合は常に条件を調べ続けるわけではない(そのうち終わってしまう)。}}
  
Scratch 1.4に存在した[[ずっと もし () なら (ブロック)|ずっと もし () なら]] ブロックは、上記のような誤解された「もし()ならブロック」の動作をしていた。
+
Scratch 1.4に存在した[[もし () なら、ずっと (ブロック)|もし () なら、ずっと]]ブロックは、上記のような誤解された「もし()ならブロック」の動作をしていた。
  
 
==引用==
 
==引用==
 
<references/>
 
<references/>
  
==参照==
+
==関連項目==
*[[もし () なら, でなければ (ブロック)|もし () なら, でなければ]]
+
*[[もし () なら、でなければ (ブロック)|もし () なら、でなければ]]
 
{{制御ブロック}}
 
{{制御ブロック}}
[[カテゴリ:制御 ブロック]]
+
[[カテゴリ:制御ブロック]]
  
[[de:Falls () (Block)]]
+
[[de:Falls () dann (Block)]]
 
[[en:If () Then (block)]]
 
[[en:If () Then (block)]]
 +
[[hu:Ha () akkor (blokk)]]{{デフォルトソート:もし () なら (ふろつく)}}

2021年3月30日 (火) 04:17時点における最新版

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

もし () ならブロック制御ブロック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に存在したもし () なら、ずっとブロックは、上記のような誤解された「もし()ならブロック」の動作をしていた。

引用

関連項目

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