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,则会执行第一个语句块。可选,可在关键字 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;
以下方法在先前的语句中嵌套了另一个 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;
如需关于使用此类型控制结构的详细信息,请参阅样本脚本。