Справочник языка Cи


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


Синтаксис:

if(<выражение>)

<оператор1>

[else

<оператор2>]

Действие:

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

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

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

Пример:

if(i >

0)

У = х/i;



else {

х = 1;

у =

f(x);

}

В примере, если i больше нуля, выполняется оператор у=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.



Содержание раздела