投稿
FOR~NEXT文は、どの様な時によく使われるのでしょうか。とりあえず自分でこの命令を使い、プログラムを組んでみたのですがこれならIF~THENでも良いのではと思いました。 FOR~NEXTの利点を教えて下さい…
4そうだね
プレイ済み
返信[1]
親投稿
みのん2 minominosuper
基本的には、FOR~NEXTは、無くてもよい (IF~THENで代用できる)命令と考えてよいと思います。 ただし、IF~THEN命令は、ループ以外にも様々な使い道が あるので、ループのためには「ループ専用命令」である FOR~NEXTを使った方がプログラムが見やすくなります。 特に、ループの中で複雑なIF~THEN条件文を 使っているときは、FOR~NEXTを使った方が 「どこがループなのか」がわかりやすくなります。 (ちなみに、BASIC以外の言語では、GOTOが基本的に 使えない言語が多いので、FOR文は必須です。)
1そうだね
プレイ済み
返信[2]
親投稿
この例ですと、日付範囲指定の合計や、日付範囲指定の一覧表示、グラフの表示などが、必要になったときに役に立つと思います。
0そうだね
プレイ済み
返信[3]
親投稿
こうやま kouyama1967
ではFOR~NEXTのちょっとした応用を、書いてみましょう。 1. FOR DAY=1 TO 31:PRINT DAY:NEXT 2. FOR DAY=1 TO 31 STEP 2:PRINT DAY:NEXT 3. FOR DAY=31 TO 1 STEP -1:PRINT DAY:NEXT  1,2,3のどれか一つを打ち込み、実行してみましょう(一度に全部打ち込むと、訳がわからなくなるので、一つずつね!) それぞれどれが、どう違う処理をしたか、わかりますか?
0そうだね
プレイ済み
返信[4]
親投稿
ループ変数とINPUT命令の入力変数を同じにしているのは、4以上の入力を終了条件とするためと推察します。 しかし、この場合は、WHILEやREPEATでループを作って、0や負の数の入力を脱出条件とした方が、プログラムの意図がわかりやすくなるような気がします。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
プチコン3号においてFOR~NEXTの利点はラベルを使わずにループが出来ることです。同等の処理を記述するのに短く簡潔に記述できるのも利点かと思います。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
I=0 @LOOP 処理 I=I+1 IF I<=4 THEN GOTO @LOOP と FOR I=0 TO 4 処理 NEXT が同等の処理になります。IF~THEN を使うと初期の設定やラベルが必要になりますね。
0そうだね
プレイ済み
返信[7]
親投稿
みのん2さん»FOR~NEXTは必ず使うものだと思っていました…。簡潔になる、ということなのですね。ありがとうございます!
0そうだね
プレイ済み
返信[8]
親投稿
コータさん»ありがとうございます。確かにそれだとFOR~NEXTの方が良いですね…。WHILEなどの方も参考にさせていただきます~。
0そうだね
プレイ済み
返信[9]
親投稿
こうやまさん»こうでしょうか?(片仮名見辛くてすいません。)
0そうだね
プレイ済み
返信[10]
親投稿
こうやま kouyama1967
 そうです。この場合注釈文の画像を貼るより、実行結果を報告したり画面を貼ると、もっと良かったと思います。  他にプチコン3号から新たに加わった繰り返し命令として、WHILE~WENDやREPEAT~UNTILもあるので、調べてみましょう。プチコン以外のBASICでは、DO~LOOPという書き方もあります。
0そうだね
プレイ済み
返信[11]
親投稿
otta777さん»具体例までありがとうございます。IF~THENだと確かに長いですね…。短さだったらFOR~NEXT、簡単さ(?)で言ったらIF~THENですかね。なやみどころです……。参考にさせていただきます。
0そうだね
プレイ済み
返信[12]
親投稿
用途に合わせて使い分ければいいので、無理に使わなくても良いし、逆に使うことでわかりやすく簡潔になるなら使うって感じでいいんじゃないんですかねー? 慣れてくれば自然に使うことになると思いますよ。
0そうだね
プレイ済み
返信[13]
親投稿
こうやまさん»その様な命令があったとは全く知りませんでした…。(ちなみに画像は3つ目の結果です。) 色々と教えて下さりありがとうございます。命令文が理解出来たら、ぜひ参考にさせていただきます。
0そうだね
プレイ済み
返信[14]
親投稿
でんぺんさん»ありがとうございます。無理に使わないで、最初は使いなれてるIF~THENから使っていこうと思います~。
0そうだね
プレイ済み
返信[15]
親投稿
2つ上のコメント すいません画像載せるのを忘れてました…!
0そうだね
プレイ済み
返信[16]
親投稿
ちなみにFORは配列と相性がいいので配列を多用するようになったら出てくる機会が増えるかもしれませんね。
2そうだね
プレイ済み