SELECT-SELEND
SELECT-SELEND
SELECT 値
CASE 条件1
処理1
CASE 条件2
処理2
CASE 条件3, 3′
処理3
・・・・・
[DEFAULT]
[DEFAULTの処理]
SELEND
・条件・・・比較する値や式を指定、カンマで複数指定も可能
・処理・・・値が条件に一致した場合に行う処理を記述
・DEFAULT・・・いずれの条件にも合致しなかった場合の処理を記述
IFB-ELSEIFよりも簡単に記述する
例えば、ある変数に1~5の値が入っているとします。
続いての処理で、1の場合はある処理を、2の場合はこういう処理を
3の場合は、4の場合は、5の場合は、それ以外の場合は・・・。
という処理を実現したい場合、まず浮かぶのはIFBとELSEIFの組み合わせだと思います。
しかし、SELECT-SELENDを使うともっとスマートに以下のように記述することができます。
//1~5の値をランダムに代入 VALUE = RANDOM(5) + 1 SELECT VALUE CASE 1 PRINT "1が出たぞ" CASE 2 PRINT "2出た" CASE 3 PRINT "3出たぞ" CASE 4 PRINT "4だぞ" CASE 5 PRINT "5みたいだ" DEFAULT PRINT "違う数だな" SELEND
SLCTBOXとの組み合わせが吉
選択ダイアログボックスを出すSLCTBOX関数があります。
この関数の戻り値は、選択したボタン(SLCT_1~)です。
これをSELECT-SELENDと組み合わせれば、
以下のようなスクリプトが完成します。
セレクトボックスを表示し、押下したボタンによって
表示メッセージを変えるスクリプトです。
タグ
2012年8月5日 | コメントは受け付けていません。 |
カテゴリー:構文・制御文
IFB
IFB
IF 式 [THEN] (もしくはIFB)
真1
[ELSEIF 式 [THEN] ]
真2
[ELSE]
偽
ENDIF
・真1,2・・・判定条件がTrueの時に実施する処理を入れます
・偽・・・判定条件がFalseの時に実施する処理を入れます
条件に一致したらある処理をする
IFB-ELSEIF-ELSE-ENDIFはブロック文の条件分岐を行う場合に使用します。
IFはIFB(ブロックのB)とも表記できます。
IFB、ELSEIFの後のTHENは省略可能です。
THENの後に処理を書くとエラーとなるので、条件判定の文のあとは
改行して下さい。
//TEST変数=1として、その値に応じた処理を実施する TEST = 1 IFB TEST =2 THEN PRINT 1 ELSEIF TEST = 3 THEN PRINT 2 ELSE PRINT 4 ENDIF
IFBの中にIFBと入れ子にすることも可能ですが、
上記スクリプトのようにインデントされていないのは
可読性の良くないスクリプトです。
キチンとインデントした、スクリプトは以下のようになります。
入れ子のIFBがあってもまぁスッキリですね。
タグ
2012年7月15日 | コメントは受け付けていません。 |
カテゴリー:構文・制御文
IF
IF
IF 式 THEN 真 [ELSE 偽]
・真・・・判定条件がTrueの時に実施する処理を入れます
・偽・・・判定条件がFalseの時に実施する処理を入れます
条件に一致したらある処理をする
IF-THEN-ELSEは1行で条件分岐を行う場合に使用します。
IFの後に判定条件を入力します。
その後のTHEN以降に、判定条件が真の時に行う処理を、
ELSE以降に、偽の時に行う処理を入力します。
//変数TESTに100を代入 TEST = 100 IF TEST > 50 THEN MSGBOX("50より大きい") ELSE MSGBOX("50以下")
上のスクリプトで変数TESTの値を判定条件としています。
TESTが50以上の場合は「50より大きい」というメッセージが出ます。
通常、IF-THEN-ELSEでは真偽それぞれ、1つずつ処理をします。
それ以外はIFB-ELSEIF-ELSEを使います。
どうしてもIF-THEN-ELSEで複数の処理を実行させたい場合は
下記のようにFUNCTIONやPROCEDUREでも使いましょう。
タグ
2012年7月15日 | コメントは受け付けていません。 |
カテゴリー:構文・制御文