第四十九章 Caché 命令大全 IF(旧版) 命令
计算一个表达式,然后根据表达式的真值选择要执行的代码行。
大纲
IF expression command1
ELSE command2
I expression command1
E command2
参数
- expression 可选-计算结果为布尔值的表达式(或逗号分隔的表达式列表)。
- command1 如果expression的计算结果为TRUE,或者省略了expression,则执行一个或多个Caché命令。
- ELSE command2 如果表达式的计算结果为FALSE,则执行一个或多个Caché命令。 ELSE关键字是可选的。
描述
注意:此页面描述了IF
命令的旧版本。此版本从Caché4.0开始被认为是旧版本,不应在新的编程中使用。此处仅出于与旧版应用程序兼容的目的对其进行描述。
传统的IF
命令是面向行的。要执行的命令必须在同一程序行中跟随它。不使用花括号,并且行格式是限制性的。新的IF
命令是块结构的;它执行的块由在IF
命令后的花括号内找到的命令组成。行格式(空格,换行符)没有限制。 IF
的新版本不使用$TEST
特殊变量。
IF
和ELSE
的新旧形式在语法上是不同的,不应结合使用;因此,一种类型的IF不应与另一种类型的ELSE配对。
IF
命令有两种形式:
- 有参数
- 无参数
IF无参数
如果$TEST
变量的当前值为TRUE(非零),则不带表达式参数的IF
将在同一行执行命令。如果$TEST
为FALSE(0),则Caché将忽略该行上的其余命令,并继续执行下一行(通常为ELSE
命令)。因此,ELSE
关键字等效于IF'$TEST
(如果$TEST
为FALSE)。
有参数
如果expression的计算结果为TRUE(非零),则带有expression参数的IF将在同一行执行命令。 (Caché还将$TEST
设置为TRUE。)如果expression的计算结果为FALSE,则Caché将$TEST
设置为FALSE(0),忽略该行上的其余命令,并继续执行下一行。
下一行通常以ELSE
关键字开头,然后在同一行上跟随一个或多个命令。 IF
命令不需要ELSE
关键字,但是需要ELSE
来指定仅在IF
为false时才执行的选项。始终指定ELSE
是推荐的编程习惯。
该面向行的ELSE
关键字可以缩写为E
。(不能缩写为面向块的新型ELSE
关键字。)IF
和ELSE
的新旧形式在语法上是不同的,不应结合使用;因此,一种类型的IF
不应与另一种类型的ELSE
配对。
![](/qrcode.jpg)
expression参数可以采用单个表达式或逗号分隔的表达式列表的形式。对于表达式列表,Caché按从左到右的顺序评估各个表达式。如果遇到FALSE表达式,它将停止求值。如果所有表达式的计算结果都为TRUE,则Caché在该行的表达式参数之后执行命令。如果有任何表达式的计算结果为FALSE,则Caché会忽略所有剩余的表达式,并且不执行该行中的命令,而是继续在下一行代码中执行。