Contents
条件分岐をさせる構文で動作は基本的に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
関連記事
- IF
- IF文は条件によって処理を分岐させたいときに利用します。条件が成り立たないときの処理(偽)は省略することができます。処理が2文以上のときはIFB-ENDIFを使います。
- SELECT-SELEND