Proceso condicional (DEFINE-!ENDDEFINE, mandato)
La construcción !IF especifica condiciones para el proceso. La sintaxis es la siguiente:
!IF (expression) !THEN statements
[!ELSE statements]
!IFEND
!IF,!THENy!IFENDson todos necesarios.!ELSEes opcional.- Si el resultado de la expresión es true, se ejecutan las sentencias que siguen a
!THEN. Si el resultado de la expresión es falso y se especifica!ELSE, se ejecutan las sentencias que siguen a!ELSE. De lo contrario, el programa continúa. - Los operadores válidos para las expresiones son
!EQ,!NE,!GT,!LT,!GE,!LE,!OR,!NOTy!AND, o =, ~ = (¬ =), >, <, > =, < =, |, ~ (¬) y&. - Cuando se expande una macro, las construcciones de proceso condicional se interpretan después de que se sustituyan los argumentos y se ejecuten las funciones.
- Las sentencias
!IFse pueden anidar siempre que sea necesario. Se pueden utilizar paréntesis para especificar el orden de evaluación. El orden predeterminado es el mismo que para las transformaciones:!NOTtiene prioridad sobre!AND, que tiene prioridad sobre!OR.
Ejemplo
DEFINE mymacro(type = !DEFAULT(1) !TOKENS(1))
!IF (!type = 1)!then
frequencies variables=varone.
!ELSE
descriptives variables=vartwo.
!IFEND
!ENDDEFINE.