If purpose – IBM SC34-5764-01 User Manual

Page 166

Advertising
background image

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

Advertising