TOP命令一覧制御系命令>ELSE[]
 GO[]  GOSUB[]  RETURN[]  LOOP[]  LOOPBREAK[]  LOOPCONTINUE[]  LOOPEND[]  WAIT[]
 IF[]  ELSE[]  IFEND[]  IFBREAK[]  IFCONTINUE[]  TASK[]  TASKINFO[]  TASKEND[]  END[]

■条件分岐命令 IF[ ]〜ELSE[ ]〜IFEND[ ]


指定した条件の真偽により、分岐します。

式を検証し、それが正しい場合(真の場合)には、
IF命令の次の位置からELSE命令が来るまでの間の命令を実行し、
正しくない場合(偽の場合)には、ELSE命令の位置までジャンプし、
その次の位置からIFEND命令が来るまでの間の命令を実行します。


IF[]
  ・
  ・ (条件が真のとき、この中の命令が実行される)ELSE[ ]
  ・
  ・ (条件が偽のときにはこの中の命令が実行される)IFEND[ ]


条件が真の時の式だけで良い場合、ELSE の記述を省略できます。

IF[]
  ・
  ・ (条件が真のとき、この中の命令が実行される)IFEND[ ]


また、次のような書き方もできます。

IF[ 式1 ]
  ・
  ・ (式1の条件が真のとき、この中の命令が実行される)ELSE[ 式2 ]
  ・
  ・ (式1の条件が偽で、式2の条件が真のとき、この中の命令が実行される)ELSE[ ]
  ・
  ・ (上記の全ての式が偽のときには、この中の命令が実行される)IFEND[ ]



条件式の書き方としては、以下のようになります。


@a == @b @aは@bと等しい
@a != @b @aは@bと等しくない
@a > @b @aは@bより大きい
@a >= @b @aは@b以上
@a < @b @aは@bより小さい
@a <= @b @aは@b以下
(式1) && (式2) (式1) かつ (式2)
(式1) || (式2) (式1) または (式2)
IF[@A == 5] ← @Aが5と等しいなら(@Aが5なら)真 IF[@A != 5] ← @Aが5と等しくないなら(@Aが5じゃないなら)真 IF[@A > 5] ← @Aが5より大きいなら真 IF[@A >= 5] ← @Aが5以上なら真 IF[@A < 5] ← @Aが5より小さいなら真 IF[@A <= 5] ← @Aが5以下なら真 IF[@A>=5 && @B<3] ← @Aが5以上で、かつ@Bが3より小さければ真 IF[@A>=5 || @B<3] ← @Aが5以上か、または@Bが3より小さければ真 例2 文字列同士の比較評価をおこなうことも出来ます。 IF[$A == "りんご"] ← $Aの内容が「りんご」なら真 IF[$A != "みかん"] ← $Aの内容が「みかん」ではないなら真 IF[$A == $B + $C] ← $Aの内容が$Bと$Cを連結したものと同じなら真 IF文の中にさらにIF文を書くことが出来ます(IFのネスト)。 IF文は最大16回までネストすることが出来ます。 IF ブロックの中で、IFBREAK 命令を実行すると、その時点で IF ブロックを抜け、 次の IFEND までジャンプします。 IF[] ・ ・ IFBREAK[ ] (ここで、IFEND まで飛ぶ) ・ ・ IFEND[ ] IF ブロックの中で、IFCONTINUE 命令を実行すると、直前の IF 命令まで戻り、 IF 命令からやり直します。 IF[] ・ ・ IFCONTINUE[ ] (ここで、IF まで戻る) ・ ・ IFEND[ ] また、LV キーワードを使って、IFBREAK や IFCONTINUE で戻る際のネストレベルを 設定することもできます。 IF[] ・ ・ IF[] ・ ・ IFBREAK[LV=2] (ここで、いきなり※1の位置まで飛ぶ) ・ ・ IFEND[ ] ・ ・ IFEND[ ] // ※1 IFBREAK 命令で、通常はレベルが1段階戻るところを、LV=2 とすることで、 2段階ネストレベルが戻ります。