[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の直後だけ命令だけを実行します。