IFB-ENDIF

条件分岐をさせる構文で動作は基本的にIF と同じですが、IFBは複数の条件で分岐でき、処理も複数書くことができます。

ELSEIFは必要だけ記述することができ、ELSEIF・ELSEは必要がなければ省略することもできます。

構文
IF 式 [THEN]
[ELSEIF 式 [THEN]]
[ELSE]
ENDIF
引数
戻値

IF文の使い方

DIM num = 550

//////////////////////////////
// 1.
//////////////////////////////
IFB num >= 1000 THEN
	PRINT "num は1000以上の値です"
ELSEIF num >= 500 THEN
	PRINT "num は500以上1000未満の値です"
ELSEIF num >= 100 THEN
	PRINT "num は100以上500未満の値です"
ELSE
	PRINT "num は100未満の値です"
ENDIF

//////////////////////////////
// 2.
//////////////////////////////
IFB num >= 1000
	PRINT "num は1000以上の値です"
ELSEIF num >= 500
	PRINT "num は500以上1000未満の値です"
ELSEIF num >= 100
	PRINT "num は100以上500未満の値です"
ELSE
	PRINT "num は100未満の値です"
ENDIF
結果
num は500以上1000未満の値です

num は500以上1000未満の値です

比較する変数が1つの場合、IF文よりSELECT文で書いたほうがシンプルに記述できます。CASEは上から順に成り立たなかった箇所はスキップされるので、ELSEIFと同じような動作をします。

SELECT TRUE
	CASE num >= 1000		// 1000以上
		PRINT "num は1000以上の値です"
	CASE num >= 500		// 1000未満かつ500以上
		PRINT "num は500以上1000未満の値です"
	CASE num >= 100		// (1000未満かつ500未満)かつ100以上
		PRINT "num は100以上500未満の値です"
	DEFAULT
		PRINT "num は100未満の値です"
SELEND
結果
num は500以上1000未満の値です

ELSEIFとは

「ELSEIF」とは文字通り「ELSE」と「IF」がくっついたもので、「前の条件に一致せずELSEIFの条件に一致したら」という意味です。

ELSEの中にIF文を書くのと同じですが、入れ子が増えて見づらくなるのでELSEIFもしくはSELECT-SELENDを使いましょう。

IFB 条件式1 THEN
	処理1
ELSEIF 条件式2 THEN
	処理2
ELSEIF 条件式3 THEN
	処理3
ELSE
	処理4
ENDIF
IFB 条件式1 THEN
	処理1
ELSE
	IFB 条件式2 THEN
		処理2
	ELSE
		IFB 条件式3 THEN
			処理3
		ELSE
			処理4
		ENDIF
	ENDIF
ENDIF

ELSEIFの条件式はそれ以前に評価された条件式がすべて「偽」のときに実行される点に注意です。

IFB num >= 100 THEN			// 100以上
	PRINT "num は100以上の値です"
ELSEIF num >= 500 THEN		// 500以上
	PRINT "num は500以上の値です"
ELSEIF num >= 1000 THEN	// 1000以上
	PRINT "num は1000以上の値です"
ELSE
	PRINT ""
ENDIF

このとき以下の文は「num が100未満かつ500以上」、「num が100未満かつ500未満かつ1000以上」というおかしな条件になるので注意が必要です。

ELSEIF num >= 500 THEN
ELSEIF num >= 1000 THEN