Purpose
Conditionally executes code based on a test expression.
Syntax
IF test-expression THEN clause[;ELSEclause];
Parameters
-
test-expression
- Any expression that results in a scalar bit string value of length ≥1. The test-expression is considered true if any bit in the string is one; the expression is considered false only when all bits are zero.
-
clause
- Either a BEGIN block, DO-group, or statement other than END, PROCEDURE, DECLARE, or FORMAT.
Example
IF A>B
THEN IF C>D
THEN X = 5;
ELSE X = 10;
In this example, the ELSE clause is associated with IF C > D THEN X = 5 ;
To associate an ELSE with the first THEN, you may write an ELSE or an empty ELSE with the second THEN, as shown in the following examples.
IF A>B;
IF C>D THEN X=5;
ELSE;
ELSE X = 10;
or
IF A>B THEN DO;
IF C>D THEN X=5;
END;
ELSE X = 10;
Description
The IF statement evaluates the test-expression. If the expression is true, the THEN clause is executed; otherwise, the ELSE clause, if present, is executed.
When an IF statement is used as a THEN or ELSE clause of another IF statement, any ELSE is always matched with the nearest unmatched preceding THEN.
test-expressions in IF statements may produce bit(n) values, where n>1. In this case, the test expression will be considered true if any of the bits in the string are 1 and false only when all bits are 0.