НазадОглавлениеДалее

5.5. Условный оператор if

Синтаксис:
if(<выражение>)
<оператор 1>
[else
<оператор 2>]

Действие:
Тело условного оператора if выполняется в зависимости от значения <выражения>.

Сначала вычисляется <выражение>. Если значение выражения истинно (не равно нулю), то выполняется <оператор 1>. Если же значение выражения ложно, то выполняется <оператор 2>, непосредственно следующий за ключевым словом else.

Если значение <выражения> ложно, но конструкция else опущена, то управление передается на оператор, следующий в программе за оператором if.

Пример:
if(i>0)
y=х/i;
else
{
х=i;
у=f(x);
}

В примере, если i больше нуля, выполняется оператор y=x/i;. Если i меньше или равно нулю, то значение i присваивается переменной х, а значение, возвращаемое функцией f(x), присваивается переменной у.

Вложенность

Оператор if может быть вложен в <оператор1> или <оператор2> другого оператора if. При вложении операторов if рекомендуется для ясности группирования операторов использовать фигурные скобки, ограничивающие <оператор1> и <оператор2>.

Если же фигурные скобки отсутствуют, то компилятор ассоциирует каждое ключевое слово else с ближайшим оператором if, у которого отсутствует конструкция else.

На ключевое слово if можно поставить метку, а на ключевое слово else - нельзя (однако можно поставить метку на <оператор2>, следующий за else).

Примеры:
/*пример 1 - без скобок */
if(i>0)
if(j>i)
x=j;
else
x=i;
/*пример 2 - со скобками*/
if(i>0)
{
if(j>i)
x=j;
}
else
x=i;

В первом примере ключевое слово else ассоциируется с внутренним условным оператором if. Если i меньше или равно нулю, то переменной х ничего не присваивается.

Во втором примере фигурные скобки ограничивают внутренний условный оператор if и тем самым делают конструкцию else частью внешнего условного оператора if. Если i меньше или равно нулю, то переменной х присваивается значение i.


НазадОглавлениеДалее