Вложенные условные операторы в Pascal
Следует быть внимательными при использовании вложенных операторов if. Предпочтительнее пользоваться схемой else-if (т.е. вкладывать во внешнюю ветку else), а не then-if (т.е не вкладывать во внешнюю ветку if). Так как в последнем случае придется следить за тем, к какой ветке относится соответствующее else. Пренебрежение этим правилом приводит к нагромождению закрывающих else.
Сравните две программы ниже. Они делают одно и то же. Однако предпочтительной является первая.
else-if
var a: integer; begin write('Введите целое число: '); readln(a); if a = 0 then writeln('zero') else if a = 1 then writeln('one') else if a = 2 then writeln('two') else writeln('unknown'); end.
then-if
var a: integer; begin write('Введите целое число: '); readln(a); if a <> 0 then if a <> 1 then if a <> 2 then writeln('unknown') else writeln('two') else writeln('one') else writeln('zero'); end.
При использовании второго варианта надо помнить следующее общее правило: каждый else относится к ближайшему предшествующему if, еще не имеющему парного else.
При вложении в ветвь else (первый вариант) конструкция получается логически более понятной.