Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Вложенные конструкции 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 (первый вариант) конструкция получается логически более понятной.