Логическое выражение в Турбо Паскале вычисляется по короткой схеме. Это означает, что вычисление такого выражения прекращается, как только его результат становится очевидным.
Пример 3.
If (x>0) and(x<100) and (y>1) and (y<x) then ...
While (x<0) or (y>1) or (z>x+y) do ...
Если x = -1, то вычисление обоих логических выражений прекращается после вычисления значения истинности первого операнда. В первом случае имеем для всего выражения значение false, во втором - значение true.
Удаление неиспользуемого кода.
Операторы, которые никогда не будут выполняться, в объектный код программы не включаются.
Пусть в исходном тексте программы записан оператор
If false then
y:=sqr(x)+1;
Такой оператор при компиляции программы игнорируется.
Используя это свойство компилятора, можно в исходном тексте программы подготовить различные ее варианты, формируемые при повторной компиляции.
Пример 4.
Const KeyPrint = 0; { Ключ тестовой печати: }
{ 0 - тестовая печать отсутствует ; }
Begin{ 1 - активизируется тестовая печать }
...............................
IfKeyPrint>0 then
Begin
Печать массива A
End;
................................
Операторы отладочной печати включаются в объектный код программы, если до ее компиляции было установлено значение константы KeyPrint = 1.