[IF_THEN〜ELSE]コマンド
論理式の条件判断と実行の制御。
文法 IF <論理式> THEN <実行文> [ELSE <実行文>]
IF <論理式> THEN <行番号> [ELSE <行番号>]
行番号の代わりに[ラベル名] を使用出来ます。
文例 IF A$="Y" THEN 100 ELSE 300
IF XX THEN 300
IF YY > 0 THEN YY=1 else YY=0
IF I > 10 THEN I=10 else IF I < 0 THEN I=0
IF I > 10 AND J < 20 THEN K=-1 else K=0
IF (I>10 AND J<20) OR ( I>5 AND J<5) THEN K=-1 else K=0
論理式が真(0以外)のときTHEN を実行、
偽(0)のときELSE を実行します。
ELSE以降が省略されているときは次の行が実行されます。
ELSE文のところに別のIF文を置くことも出来ます。この多重化は
1行の文の記述範囲以内とします。
論理式が1つだけの変数または定数のとき(等号や不等式でないとき)、
値が0以外のときTHENを、0のときELSEを実行します。
[IF_GOTO〜ELSE] も同様です。
文例のように論理式には複合論理式を使用出来ます。
IF文に:による区切り文をおくことができます。THENとELSEでルールが違います。
THEN文に:区切り文をおくときは、ELSEの場合実行しません。次の行番号に進みます。
10 A=0:if A>-1 THEN A=1:B=2:?A,B
20 B=3:?B
30 END
この例では、
1 2
3
と出力します。
ELSE文に:区切り文をおくときは、THENの場合実行しません。次の行番号に進みます。
10 A=0:IF A>0 THEN PRINT A ELSE A=1:B=2:PRINT A,B
20 END
この例では、
1 2
と出力します。
サンプル
10 A=1
20 IF A THEN 100 ELSE 300
30 END
100 PRINT "Here is TRUE"゛
110 GOTO 30
300 PRINT "Here is FALSE"
310 GOTO 30
この例では、Here is TRUE を1回表示し、終了します。
サンプル
10 A=0
20 IF A THEN 100
30 PRINT "Here is FALSE"
40 END
100 PRINT "Here is TRUE"
110 GOTO 40
この例では、Here is FALSE を1回表示し、終了します。
サンプル
10 A=0
15 B=100
20 IF A THEN 100 ELSE IF B>10 THEN B=10 ELSE B=0
30 PRINT A,B
40 END
100 PRINT "Here is TRUE"
110 GOTO 30
この例では、0 10 と表示し、終了します。
サンプル
10 if 1=1 then print 0 :print 1: print 2
この例では0 1 2 と表示します。
サンプル
10 if 1=1 then print 0 else print 100:print 1: print 2
この例では0 と表示します。
サンプル
10 if 1=2 then print 0 else print 100:print 1: print 2
この例では100 1 2 と表示します。
IF文の同じ行に行分割コロン :がある場合、通常の行分割と異なります。
THEN文に続いて:があれば、THENのときだけ継続します。
ELSEのときはこのIF文の行の次の行に進みます。
ELSE文に続いて:があれば、ELSEのときだけ継続します。
THENのときはTHENの直後だけ命令だけを実行します。