Учебник Turbo Pascal. Введение - Вложенные операторы if...then...else...

ОГЛАВЛЕНИЕ

Вложенные операторы if...then...else...

Как уже отмечалось, условные операторы можно вкладывать друг в друга, программируя таким образом сложные ветвления. Рассмотрим следующий оператор:

if expression_1 then
    statement_1
else
    if expression_2 then
        statement_2
    else
        if expression_3 then
            statement_3
    ...
    else
        if expression_n then
            statement_n;

Вначале вычисляется значение логического выражения expression_1. Если оно истинно, выполняется оператор statement_1, если же это значение ложно, вычисляется значение выражения expression_2. В том случае, когда полученное значение истинно, будет выполняться оператор statement_2, при значении «ложь» будет вычисляться выражение expression_3 и т. д.

Если выражения expression независимы, то есть вычисление их значений в любом порядке дает один и тот же результат для каждого из них, имеет смысл располагать их в таком порядке, чтобы выражение, с наибольшей вероятностью принимающее значение «истина», стояло на первом месте, выражение, принимающее значение «истина» с меньшей вероятностью, — на втором и т. д. Это уменьшит время выполнения данного фрагмента программы, особенно если вложенный оператор появляется в цикле, который выполняется многократно.

Пример вложенных условных операторов:

if Two = 2 then 
    if One = 1 then
        Writeln('Единица равна 1')
    else
        Writeln('Единица не равна 1')
else
    if Three = 3 then
        Writeln('Три равно 3')
    else
        Writeln('Три не равно 3');