条件处理 (DEFINE-!ENDDEFINE 命令)
!IF 构造指定处理条件。 语法如下所示:
!IF (expression) !THEN statements
[!ELSE statements]
!IFEND
!IF,!THEN和!IFEND都是必需的。!ELSE是可选的。- 如果表达式的结果为 true ,那么将执行
!THEN后面的语句。 如果表达式的结果为 false 并且指定了!ELSE,那么将执行!ELSE后面的语句。 否则,程序将继续。 - Valid operators for the expressions include
!EQ,!NE,!GT,!LT,!GE,!LE,!OR,!NOT, and!AND, or =, ~= (¬=), >, <, >=, <=, |, ~ (¬), and&. - 当扩展宏时,将在替换自变量并执行函数之后解释条件处理构造。
- 必要时可以嵌套
!IF语句。 括号可用于指定求值顺序。 缺省顺序与变换的顺序相同:!NOT优先于!AND,后者优先于!OR。
示例
DEFINE mymacro(type = !DEFAULT(1) !TOKENS(1))
!IF (!type = 1)!then
frequencies variables=varone.
!ELSE
descriptives variables=vartwo.
!IFEND
!ENDDEFINE.