TO - [制御] |
||||||
… 繰り返し処理
FOR 変数=式1 TO 式2 STEP 式3
FORとNEXTの間に記述した処理を、指定した回数繰り返します。回数は、式1の値を加算して式2の値になるまでです。
処理を繰り返すたびに、式1の値にSTEPの値を加算します。変数にはその値が自動的に代入されます。
式1の値が式2の値を越えた時点でループが終了します。
STEP以降は省略が可能です(省略すると、STEP 1として扱われます)。
FOR文は最低1回は処理が実行されます。
STEPにはプラスの値の整数値のみ使用してください。マイナスの値は使用できません。
GOTO文などでFOR〜NEXTループを抜けると、内部処理(スタック処理)に異常が発生し、動作不具合の原因となります。
FORループの途中でループを抜ける場合は、カウンタ変数の値を終了値(TOの後に指定した値)に設定するなどの方法を利用してください(サンプル 2を参照)。
FOR行ではマルチステートメントを使用できません。動作の不具合が発生します。
FOR〜NEXT間には、何らかの処理を記述する必要があります。処理を記述しないと、不具合が発生する可能性があります。
(サンプル 1)
REM 944BASIC 'FOR NEXT サンプル'
COLORBG 0,0,0:COLORFG 0,255,0
FONT 48:CLS
REM 入れ子(ネスト)も可能
FOR I=0 TO 31
A=''
FOR J=0 TO 59
REM RNDにTIME(時刻)を足して、より不規則化する
R=RND+TIME%10:R=STR(R)
A=STRCAT(A,R)
NEXT J
PRINT A
NEXT I
KEYWAIT
(サンプル 2)
REM 944BASIC 'FOR NEXT サンプル2'
REM ランダムシード - RNDを不定回数繰り返して、より不規則化する
FOR I=(TIME%60)
R=RND
NEXT I
R=RND+TIME%20
FOR I=1 TO 20
PRINT 'FOR 〜 NEXT ';
PRINT I;
PRINT ' 回目'
REM 変数 I を強制的に終了値にして、ループを抜ける
IF I=R THEN PRINT 'STOP': I=20
NEXT I
KEYWAIT
END
TO - [制御] |