IF … THEN … ELSEIF … ELSE … ENDIF
- Last UpdatedNov 11, 2023
- 1 minute read
IF-THEN-ELSE-ENDIF は、式の状態に基づいてさまざまな手順を実行します。以下に構文示します。
IF <Boolean_expression>THEN
[statements];
[ { ELSEIF
[statements] } ];
[ ELSE
[statements] ];
ENDIF;
ここで、Boolean_expression は、ブール型として評価できる式です。
式から返されるデータ型に応じて、次の表に従って式は True または False の状態に評価されます。
|
データ型 |
マッピング |
|---|---|
|
ブール型、論理型 |
直接使用(マッピング不要) |
|
整数型 |
Value = 0 は False に評価されます。 |
|
浮動小数点型、実数型 |
Value = 0 は False に評価されます。 |
|
倍精度 |
Value = 0 は False に評価されます。 |
|
文字列型、メッセージ型 |
マップできません。Boolean_expression としての文字列型になる式を使用すると、スクリプト検証エラーが発生します。 |
|
時間 |
マップできません。Boolean_expression としての時刻型になる式を使用すると、スクリプト検証エラーが発生します。 |
|
経過時間 |
マップできません。Boolean_expression として経過時間になる式を使用すると、スクリプト検証エラーが発生します。 |
|
オブジェクト |
オブジェクト型になる式の使用。検証しますが、オブジェクトはランタイム時にブール型に変換されます。ブール型に変換できない場合、ランタイム例外が発生します。 |
Boolean_expression が True に評価された場合、ステートメントの最初のブロックが実行されます。ステートメントの 2 番目のブロックはキーワード ELSE の後で定義できます(オプション)。このブロックは、Boolean_expression が False に評価された場合に実行されます。
複数の代替候補から選択する際は、オプションの ELSEIF 句を必要に応じて使用できます。ELSEIF 句は、その他のプログラミング言語で提供されている切り替えステートメントを模倣します。以下に例を示します。
IF value == 0 Then
Message = "Value is zero";
ELSEIF value > 0 Then
Message = "Value is positive";
ELSEIF value < 0 Then
Message = "Value is negative";
ELSE
{Default.Should never occur in this example};
ENDIF;
次のアプローチでは、2 番目の IF 複合ステートメントを前のステートメントにネストし、追加の ENDIF が必要です。
IF (X1 == 1) THEN
X1 = 5;
{ ELSEIF <X1 == 2>THEN
X1 = 10;
ELSEIF X1 == 3 THEN
X1 = 20 ;
ELSEIF X1 == 4 THEN
X1 = 30 };
IF X1 == 99 THEN
X1 = 0;
ENDIF;
ENDIF;
このタイプの制御構造の使用の詳細については、「サンプル スクリプト」を参照してください。