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

1行での条件分岐を行う
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で複数の処理を実行させたい場合は
下記のようにFUNCTIONPROCEDUREでも使いましょう。

この投稿の続きを読む »

タグ

2012年7月15日 | コメントは受け付けていません。 |

カテゴリー:構文・制御文

このページの先頭へ