*Relational operators* allow you to
compare the values of two expressions, to obtain a Boolean result of TRUE
or FALSE. Although they can be used in any

Operator |
Relation |
Example |

= |
Equality |
5 = 5 |

<>, >< |
Inequality |
5 <> 6 |

< |
Less than |
5 < 6 |

> |
Greater than |
6 > 5 |

<=, =< |
Less than or equal to |
5 <= 6 |

>=, => |
Greater than or equal to |
6 >= 5 |

When arithmetic and relational operators are combined in an expression, arithmetic operations are always evaluated first. For example, 4 + 5 < 4 * 3 evaluates to TRUE (non-zero), because the arithmetic operations (addition and multiplication) are carried out before the relational operation. This then tests the truth of the assertion 9 < 12.

PowerBASIC lets you compare

Two string expressions are equal if *and only if *they contain
exactly the same characters in exactly the same order. For example:

a$ = "CAT"

x1% = (a$ = "CAT") : x2% = (a$ = "CATS") : x3% = (a$ = "cat")

String ordering is based on two criteria: first, the ASCII values of the characters they contain, and second, the length of the strings.

For example, the letter *A* is less than the letter *B* because
the ASCII code for *A*, 65, is less than the code for *B*, 66.
Note, however, that *B* is less than *a* because the ASCII
code for each lowercase letter is *greater* than the corresponding
uppercase character (exactly 32 greater). When comparing mixed uppercase
and lowercase information, use the UCASE$
or LCASE$ functions to keep case differences
from interfering with the test.

city1$ = "Seattle"

city2$ = "Tucson"

IF UCASE$(city1$) > UCASE$(city2$) THEN

city$ = city1$

ELSE

city$ = city2$

END IF

city1$ = UCASE$(city1$)

city2$ = UCASE$(city2$)

IF city1$ > city2$ THEN

city$ = city1$

ELSE

city$ = city2$

END IF

Note the difference between the two sets of statements.
In the first case, the string variables *city1$* and *city2$*
are converted to uppercase for the comparison only, so the first IF/THEN
returns Tucson. In the second case, the conversion is performed
on the variables themselves, so the result will be TUCSON.

Length is important only if both strings are identical up to the length
of the shorter string, in which case the shorter one evaluates as less
than the longer one; for example, *CAT* is less than *CATS*.

The ARRAY SORT and ARRAY SCAN statements allow you to specify whether lower case characters are to be treated as uppercase for comparison purposes. You can also specify a string that explicitly determines the sorting order for all 256 ASCII characters.

See Also