投稿
ようすけ youslzh
メインループにて、 「WHILE 1」派と「GOTO @LOOP」派いらっしゃるかと思いますが、自分は「GOTO @LOOP」派。 WHILEの方は「条件式は処理重」というイメージが脳内に植え付けられているため。まぁ3DSで気にする事じゃないですよねw 後者のGOTOはスパゲッティープログラムなんて言われるので(可読性が無いわけではないですが)うにゃうにゃ
7そうだね
プレイ済み
返信[1]
親投稿
かっちん kacchin7
僕もGOTO @LOOP派ですね。 単純にWHILEを知らなかっただけなんですけどね。 別に困ってないのでいいかな…と
2そうだね
プレイ済み
返信[2]
親投稿
私はスパゲッティというより、もつれた漁網です。
1そうだね
プレイ済み
返信[3]
親投稿
まげ MAGE_LOVEMARINE
慣れてくると、なぜか「GOTO使ったら負け」みたいな、何の根拠もない気分になるんですよねぇ(^^;)。GOTOに失礼ですよねぇ。 ただ、WHILEでのループは、BREAKで簡単に抜けられるというメリットがありますね。
2そうだね
プレイ済み
返信[4]
親投稿
僕はケースバイケースですね〜。BASICなのだからGOTOもアリ派ではありますが大抵の言語はGOTOは無かったりあっても使わないのが主流なので、そのクセもあるんで使わないこともあります。 一応僕の中ではGOTOの場合はインデントをつけなくてもいいというルールがあって、WHILEの場合はインデントをつけるのですがGOTOの場合はつけないので、その分字下げが減るのでGOTOを使う的なパターンにする場合があります。 あとはREPEATとON GOTOを組み合わせてSWITCH CASE的な処理を書くこともありますね。まあ限定的なうえ微妙ですが…。 あとまげさんの言うようにBREAKで抜けたいと思うケースではWHILEにしたりしますね。
1そうだね
プレイ済み
返信[5]
親投稿
昔々の人々が、GOTO濫用スパゲッティプログラムのトラウマで過度のGOTO排斥論を産んだ感はあります。 確かに大抵の場合はGOTOは不要なのですが、無限ループに関してはGOTOもアリかなと個人的には考えてます。 疑う余地なく無限ループである感は出ますし。 あと個人的には WHILE 1 よりも WHILE TRUE の方が好きなんですが、プチコンだと1ってしといた方が若干早いんですよね。 ついでに他言語なら for (;;) { … } なんて「終わらないよー」と泣き顔になってる風に見えて好きです。
3そうだね
プレイ済み
返信[6]
親投稿
R.M MAKKUdaisuki
自分は、WHILE派です。 mk2のときまでGOTOでしたが、なぜか3号になって、WHILEに慣れたので、とくに理由はないですがWHILEを使っています。
1そうだね
プレイ済み
返信[7]
親投稿
ようすけ youslzh
BASICでGOTOに慣れて他言語に行ったときの苦労をふと思い出しました^^ 3号は関数作れ、GOTOを多用するせずとも割りと容易に作れちゃいますしどちらもアリそうですね。 でんぺんさんが仰ってたようなインデント無くてもっていうのは確かに!
0そうだね
プレイ済み
返信[8]
親投稿
ようすけ youslzh
メインループはもとよりそこから抜ける際の終了処理も念頭に入れるなら「WHILE」が便利ですかね。まげさんが仰ってたようなBREAKなら簡単に抜けれますし。
0そうだね
プレイ済み
返信[9]
親投稿
ようすけ youslzh
'//変数の定義 VAR LOOP=1 '//メインループ変数 '//メインループ WHILE LOOP '//Xボタンが単独で押されたら終了 IF BUTTON(2)==64 THEN LOOP=0 VSYNC 1 WEND '//終了処理 ACLS END
0そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
もしや for(;;){ } 先に #define _ としておけば for(;_;){ } と出来るのでは?
2そうだね
プレイ済み
返信[11]
親投稿
ようすけ youslzh
ナンテコッタ(;_;)パンナコッタ
0そうだね
プレイ済み
返信[12]
親投稿
#defineが使えればなんでも出来ちゃいそうですけどね(^^; メインループを作ってそれを抜けるという目的だったら、ループ変数を作らないで単純に永久ループ(TRUE)を作ってBREAKで抜けた方が意図が明確かなという気もしますね〜。抜けるまでの間に予定外のコードが走ることもないし。 まあ基本的にGOTOは無くてもプログラムは組めるので、GOTOが無いと困るってことはないと思います。ただせっかくあるのだから必要以上に毛嫌いしないで多重ループを一気に抜ける際などは利用してあげてもいいんじゃないかなって思いますね。
0そうだね
プレイ済み
返信[13]
親投稿
KU kerorinU
ポケコンCで #define PRINT" printf(" #define INPUT" scanf(" とかやって楽してたなあ。 GOTOは多重ループ内からの脱出によく使います。アセンブラ組んでたらgoto必須なので、BASICやCでも使ってしまう、、、
0そうだね
プレイ済み