Рассмотрим вложенный оператор IF с комментариями состояния:
IF Ch1 < Ch2
THEN { Ch1 < Ch2 }
IF Ch2 < Ch3
THEN { Ch1 < Ch2 < Ch3 }
WRITE(Ch1)
ELSE { Ch1 < Ch2, Ch3 <= Ch2 }
IF Ch1 < Ch3
THEN { Ch1 < Ch3 <= Ch2 }
WRITE(Ch1_
ELSE { Ch3 <= Ch1 < Ch2 }
WRITE(Ch3)
Комментарий состояния
{Ch1 < Ch2 < Ch3}
выражает два утверждения о том, что значение Ch1 преджествует Ch2 и значение Ch2 предшествует Ch3. Булевый оператор AND захватывает это интуитивное значение. AND – это бинарный (два операнда) инфиксный (расположенный между своими операндами) оператор, который принимает значение TRUE, если значения обоих Булевых операндов являются истинными (TRUE). Во всех остальных случаях он принимает значение FALSE.
TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
FALSE AND TRUE = FALSE
FALSE AND FALSE = FALSE
Операции сравнения могут обычно объединяться с оператором AND. Когда одинаковые операнды встречаются в объединенном условии, чаще получается более простое условие с тем же самым значением истинности. Например:
Сравнение, объединенное при помощи AND:
| Более простое эквивалентное сравнение
|
Ch1 <= Ch2
| Ch1 >= Ch2
| Ch1 = Ch2
|
Ch1 <= Ch2
| Ch1 < Ch2
| Ch1 < Ch2
|
Ch1 < Ch2
| Ch1 > Ch2
| FALSE
|
Более простое сравнение является эквивалентным, поскольку AND требует выполнения обоих объединенных сравнения, включая возможность их противоречия. Во втором случае, эквивалентность операндов не может быть произойти в Ch1<=Ch2, поскольку Ch1 < Ch2 это запрещает.