条件处理 (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.