13.『〇を送って待つ』の待つとは何?

メッセージ機能は、スプライト間でメッセージを交換する時に使う機能です。メッセージ機能の送る側には、『〇を送る』と『〇を送って待つ』の2種類があります。

種類 説明
〇を送る メッセージを送った先のプログラムが終わるのを待たずに、次の命令に進む
〇を送って待つ メッセージを送った先のプログラムが終わるまで待って、その後次の命令に進む

待つとは「メッセージを受け取った処理がすべて完了するまで待つ」という意味です。

【重要】『〇を送る』と『〇を送って待つ』の使い分け
●黒丸『〇を送る』:メッセージを送った側と受け取った側の処理順序に制約がない(どちらが先に動いてもかまわない)場合に使用します。
●『〇を送って待つ』:メッセージを受け取った側の処理がすべて完了したあとに、送った側が処理されないと不都合が起こる場合に使用します。例えば、スプライトごとに初期化処理を一斉に実行させるときは、この『〇を送って待つ』で初期化処理を完了させ、その後に後続処理を実行させます。

【注意】メッセージを受け取った側の処理が完了する前に再度『〇を送る』を実行すると、実行中の処理がキャンセルされるというのが、Scratchの『〇を送る』ブロックの仕様となっています。これらの問題を避けるためには、『〇を送る』ではなく『〇を送って待つ』を使うのが一つの解決方法です。
→メッセージを送り続けたときの問題については、中級編『38.『〇を送る』は、送り続けると動かないよ!』を参照

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です