A predicate expression is an expression that is evaluated as being “true” or “false” as part of a statement that controls program execution. IDL evaluates predicate expressions in the following contexts:
- IF...THEN...ELSE statements
- ? : inline conditional expressions
- WHILE...DO statements
- REPEAT...UNTIL statements
The definition of true and false for the different data types is as follows:
Data Type |
True |
False |
Byte, integer, and long
|
Odd integers |
Zero or even integers
|
Floating point and complex
|
Non-zero values |
Zero |
String
|
Any string with non-zero length
|
Empty string ("")
|
Heap variables (pointers and objects)
|
Non-null values |
Null values |
List and Hash |
List or Hash has at least one member
|
List or Hash is empty
|
If the LOGICAL_PREDICATE compile option is set:
Data Type |
True |
False |
Numerical values
|
Non-zero values |
Zero |
String or heap variables
|
Non-null values |
Null values |
See COMPILE_OPT for additional details on the LOGICAL_PREDICATE compilation option.
In the following example, the logical statement for the condition is a conjunction of two conditions:
IF (LON GT -40) AND (LON LE -20) THEN ...
If both conditions (LON being larger than –40 and less than or equal to –20) are true, the statement following the THEN is executed.