Справочные данные по языку C++____________________________653

В этом случае область действия и существования объявленной переменной —
только данная структура if, включая ее выполняемый оператор.
Форма конструкции if...else имеет вид:

if (условие) оператор!;

else оператор2;

Если условие возвращает true, то выполняется первый из указанных операто-
ров, в противном случае выполняется второй оператор. Обратите внимание, что в
конце первого оператора перед ключевым словом else ставится точка с запятой.

Приведем примеры.

if (J == 0)

ShowMessage("Деление на нуль");

else

Result = I/J;

В качестве и первого, и второго оператора могут, конечно, использоваться и
составные операторы:

if (J == 0)

{

ShowMessage("Деление на нуль");

Result = 0;

}
else

Result = I/J;

Опять обратите внимание, что после фигурной скобки перед else точка с запя-
той не ставится.

При вложенных конструкциях if могут возникнуть неоднозначности в пони-
мании того, к какой из вложенных конструкций if относится элемент else. Компи-
лятор всегда считает, что else относится к последней из конструкций if, в которой
не было раздела else.

Например, в конструкции

if (условие!)
if (условие2)
оператор!;

else оператор2;

else будет отнесено компилятором ко второй конструкции if, т.е. оператор2 будет
выполняться в случае, если первое условие истинно, а второе ложно. Иначе гово-
ря, вся конструкция будет прочитана как

if (условие!)
(

if (условие2) оператор!;

else оператор2;

}

Если же вы хотите отнести else к первому if, это надо записать в явном виде с
помощью фигурных скобок:

if (условие!)

(

if (условие2) оператор!;

}
else оператор2;