Логический тип данных, названный в честь английского математика XIX века Дж. Буля кажется очень простым. Но с ним связан ряд интересных моментов.
Во-первых, к данным этого типа применимы логические операции AND, OR, XOR, NOT. Как правило, труднее всего понять операцию "исключающее ИЛИ" (XOR). Ее смысл: "или одно, или другое, но не оба сразу". Поэтому True XOR False=True, но True XOR True=False.
Во-вторых, допустимы присваивания вида:
VAR l:BOOLEAN;
…
l:=(a>b) OR (c<4);
Очень частая ошибка начинающего программиста – использование оператора IF там, где достаточно применить булевский тип данных. Вот так делать не надо:
IF (a>b) AND (d<0) THEN
c:=TRUE
ELSE
c:=FALSE;
Все гораздо проще:
c:=(a>b) AND (d<0);
В-третьих, операции AND и OR могут быть выполнены при неизвестном втором операнде:
IF (a>5) AND (c<d) THEN…
Если a<=5, то условие c<d вообще не проверяется, так как при любом его значении результат всего выражения уже известен.