IF
Purpose
IF expression
;
THEN instruction
; ELSE instruction
;
IF conditionally processes an instruction or group of instructions depending on the evaluation of the
expression. The expression is evaluated and must result in 0 or 1.
The instruction after the THEN is processed only if the result is 1 (true). If you specify an ELSE, the
instruction after the ELSE is processed only if the result of the evaluation is 0 (false).
Example:
if answer='YES' then say 'OK!'
else say 'Why not?'
Remember that if the ELSE clause is on the same line as the last clause of the THEN part, you need a
semicolon before the ELSE.
Example:
if answer='YES' then say 'OK!'; else say 'Why not?'
The ELSE binds to the nearest IF at the same level. You can use the NOP instruction to eliminate errors
and possible confusion when IF constructs are nested, as in the following example.
Example:
If answer = 'YES' Then
If name = 'FRED' Then
say 'OK, Fred.'
Else
nop
Else
say 'Why not?'
Notes:
1. The instruction can be any assignment, command, or keyword instruction, including any of the more
complex constructs such as DO, SELECT, or the IF instruction itself. A null clause is not an instruction,
so putting an extra semicolon (or label) after the THEN or ELSE is not equivalent to putting a dummy
instruction (as it would be in PL/I). The NOP instruction is provided for this purpose.
2. The symbol THEN cannot be used within expression, because the keyword THEN is treated differently,
in that it need not start a clause. This allows the expression on the IF clause to be ended by the
THEN, without a ; being required. If this were not so, people who are accustomed to other computer
languages would experience considerable difficulties.
IF
144
CICS TS for VSE/ESA: REXX Guide