Вложенные конструкции if-elseСледует быть внимательными при использовании вложенных операторов 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'); readln 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'); readln end.
При использовании второго варианта надо помнить следующее общее правило: каждый else относится к ближайшему предшествующему if, еще не имеющему парного else. При вложении в ветвь else (первый вариант) конструкция получается логически более понятной. |