プレイ日記
うらけん URAGOE82
素朴な疑問 (最近日記で質問し過ぎかな……でも何かトピックにするほどでもないんだよな…………)
3そうだね
プレイ済み
返信[1]
親投稿
前者は無限ループ 後者は有限ループ ループ回数を知る必要が無く、終了予定が無いループならば、前者がおすすめされます。
4そうだね
プレイ済み
返信[2]
親投稿
Hanzo rzsense
速度的には、FORホニャララよりWHILEホニャララの方が速いです。 ただし、ループを回す回数が決まっていたり、ループ回数に応じた処理をしたり、と言うことであれば、FORホニャララの方が断然楽です。 結局、どっちが良いとか良くないとかではなく、やりたいことに合う方を選択すればよいのです。 ちなみに、REPEAT:ホニャララ:UNTILというループもあります。
3そうだね
プレイ済み
返信[3]
親投稿
うらけん URAGOE82
毎度毎度毎度ありがとうございます!! ということは自分はほぼ無限ループしか使わないからWHILE TRUE WEND ですね!
2そうだね
プレイ済み
返信[4]
親投稿
うらけん URAGOE82
第三のループがあるのか!? 知りませんでした… ありがとうございます!
1そうだね
プレイ済み
返信[5]
親投稿
TERA(LL) tera0413
基本、FOR~はループ回数が固定で、それに対しWHILE~はループ回数を条件(可変)で満たしてる間ループするFOR~の発展版。 敢えて条件を常に満たしてる設定にして無限ループに使う事も有りますが、わざわざ無限ループにして条件(IF文)で抜ける(BREAK)にしてる理由について小一時間程ry (ループを抜ける条件が複数有るならそれは有りですが)
2そうだね
プレイ済み
返信[6]
親投稿
TERA(LL)さん それはFORのスタック回避ですか?
1そうだね
プレイ済み
返信[7]
親投稿
うらけん URAGOE82
何か分かんないのが色々出てきた……w
1そうだね
プレイ済み
返信[8]
親投稿
どうせWHILEの条件を常に真にするならTRUEなんて4バイトも食わずに1でいいんだよね
4そうだね
プレイ済み
返信[9]
親投稿
うらけん URAGOE82
本当だ! 1でも動いた…! 3bの節約♪
1そうだね
プレイ済み
返信[10]
親投稿
要はWHILEはギブアップ(条件不成立)で終わるわんこそばで、FORは(回数)人前食べたら終わりのざるそばです。 (余計に分かりにくいかも) でも使う予定が無いならば無理に覚えなくても大丈夫ですよ。
5そうだね
プレイ済み
返信[11]
親投稿
うらけん URAGOE82
いや!分かりやすいです!! ありがとうございます!!! (わんこそばにたとえるとは……)
1そうだね
プレイ済み
返信[12]
親投稿
ツララ LongIceSword
FORのループでもループ中にカウンタ変数が終了値に到達しない処理を入れると無限ループになるんですよね。 FOR I=0 TO 1 I=0 NEXT これでも無限ループ。 FOR I=0 TO A A=I+1 NEXT これでも無限ループ。
1そうだね
プレイ済み
返信[13]
親投稿
ツララ LongIceSword
あ、でも終了値を増やすタイプだと最終的にオーバーフローエラーになる・・・
1そうだね
プレイ済み
返信[14]
親投稿
うらけん URAGOE82
FORのやつでも無限ループをすることが出来るんか~いつか役に立つかも! ありがとうございます!!!
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
ツララさんへ いくら終了値を増やしてもプチコン3号の実数型の有効桁数の関係で2の52乗(9007199254740992)以上の値は正しくインクリメントできないためそこでカンストするので大丈夫です。(2の52乗から2の53乗までは2ずつしか増やせないので1ずつ増やしても切り捨てられて値は増えない) これが整数型変数ならば2147483647を超えた時点でオーバーフローとなりますね。
3そうだね
プレイ済み
返信[16]
親投稿
ツララ LongIceSword
実数型の変数は1ずつ増やすとカンストしないっていうのは何気に裏技ですね。 FOR文のカウンタ変数に自分は少数使う事が少ないので整数型でVARしてたんですけど 敢えて宣言しない利点ってやつですねこれ。参考になりましたー。 ありがとうございます!!!
2そうだね
プレイ済み