SELECT文

本ページには広告が含まれています。

SELECT文は式の値に応じて多分岐を行います。

条件式がTRUEの場合、最初に真となるCASEを実行します。

CASE句で式をカンマで区切ると論理和(OR)扱いとなります。

C言語のswitch文のようにCASEの終わりにbreakを書く必要はありません。

構文
SELECT 式
CASE 式
処理
[CASE 式, 式]
処理
[DEFAULT]
処理
SELEND
引数
戻り値

SELECT文の使い方

以下のようにIF文で書いたときに条件式が同じで値だけが変わるようなときには、SELECT文を使った方がきれいに書けます。

UWSC
IFB n MOD 2 = 0 THEN
	PRINT "偶数です"
ELSEIF n MOD 2 = 1 THEN
	PRINT "奇数です"
ELSE
	PRINT "整数ではありません"
ENDIF

上のIF文と同じ処理をSELECT文で書いた場合。

UWSC
SELECT n MOD 2
	CASE 0
		PRINT "偶数です"
	CASE 1
		PRINT "奇数です"
	DEFAULT
		PRINT "整数ではありません"
SELEND

論理演算子

式は論理演算子を使って書くこともできます。

UWSC
SELECT TRUE
	CASE num >= 0 AND num < 10
		PRINT "0以上10未満です"
	CASE num >= 10 AND num < 20 
		PRINT "10以上20未満です"
	DEFAULT
		PRINT "それ以外です"
SELEND
論理和

カンマ(,)は論理和(OR)と同じです。

UWSC
SELECT TRUE
	CASE num = 1, num = 3
	CASE num = 2, num = 4
	CASE num = 5, num = 6
SELEND
UWSC
SELECT TRUE
	CASE num = 1 OR num = 3
	CASE num = 2 OR num = 4
	CASE num = 5 OR num = 6
SELEND

関連記事

IF文
IF文は条件によって処理を分岐させたいときに利用します。条件が成り立たないときの処理(偽)は省略することができます。処理が2文以上のときはIFB-ENDIFを使います。
IFB文
条件分岐をさせる構文で動作は基本的にIFと同じですが、IFBは複数の条件で分岐でき、処理も複数書くことができます。ELSEIFは必要だけ記述することができ、ELSEIF・ELSEは必要がなければ省略することもできます。