投稿
りょうま R-S1437
WHILE~WENDと@ラベル~GOTO@ラベルのそれぞれの違いやメリット,デメリット等を詳しく教えて頂けないでしょうか?
1そうだね
プレイ済み
返信[1]
親投稿
ASA fusuian
WHILEは条件不成立やBREAK文でループから抜けられるのが最大の違いですね。 GOTOループでループを抜けるには、もう一つラベルが必要です。 結局、WHILE文は「ここからループ」というプログラマの意図をプログラムに刻み込むための文です。 @LOOPというラベルでもプログラマの意図は示せますが、ラベルは嘘になることもある。 WHILE 1と言ったらプログラマの意図として「ここから無限ループだよ」と書いているわけです。 ミニゲームなら、やられたらBREAKしてチャンチャンで終了。プログラムの流れが明確なのです。
1そうだね
プレイ済み
返信[2]
親投稿
りょうま R-S1437
わざわざありがとうございます!WHILE 1で 無限ループと言うことはループ回数の設定とか出来たりしちゃうのでしょうか? それだとWHILE~WENDの方が便利ですね。
0そうだね
プレイ済み
返信[3]
親投稿
ゆうたん yu-tan-sama
WHILE 1というよりはWHILE TRUEですね 1ってのは単にそれでもTRUEと同じように判断されるだけにすぎません あと、ループ回数の設定をするなら素直にFOR文を使うのが一番です 目的がわかりにくくなっちゃったら意味がないですし
1そうだね
プレイ済み
返信[4]
親投稿
けい kei0baisoku
プログラムのジャンプを駆使して同じところをぐるぐる回ってるのはどちらも同じで、WHILEはそれを分かりやすく、使いやすくした親切な命令、という風に捉えると分かりやすいかなと思います。
1そうだね
プレイ済み
返信[5]
親投稿
りょうま R-S1437
WHILEさんは親切なんですね。 色々と便利そうなのでこれからはWHILEを使います。まだ慣れていないからたまにGOTO命令を使うかも知れませんが。色々教えて下さってありがとうございました。
1そうだね
プレイ済み
返信[6]
親投稿
GOTO命令は基本的にどこかに飛ぶという事しか明示してないので、それがループになるとは限らないですが、WHILEなどのループ系命令はループになるのが保証されていますし、その為の便利な機能(抜けだすBREAK命令やカウントも処理してくれるFORなど)があります。 なので基本的にループであればGOTOを使う必要はなくて、またループで無い場合でもほぼGOTOは使わなくても実現出来るので、慣れてきたら使わないようにしていった方がプログラムとして理路整然としたコードになると思いますよ。 さらに言うと、思いっきり慣れたらあえてGOTOを使って処理を効率良くするみたいな事も考えられますが、自信がないうちはGOTOを無くしていくように考えていく方が素直なプログラムになると思います。
2そうだね
プレイ済み
返信[7]
親投稿
ASA fusuian
ちなみにWHILE 0でループを書くと、無限ループと逆の決して通らないループを書けます。これはWHILE FALSEと同じなんですね。 数字を使う場合は0なら通らない、0以外なら通る、という判定の仕方をよくします。通るか通らないかで言えば1も2も256も同じ真値なのです。 ボタンの判定でよくやります。IF BUTTON() AND 16 THENとか。
2そうだね
プレイ済み