Книга: Язык программирования Си для персонального компьютера
Условный оператор if
Условный оператор 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.
- Введение
- Пустой оператор
- Составной оператор
- Оператор-выражение
- Условный оператор if
- Оператор пошагового цикла for
- Оператор цикла с предусловием while
- Оператор цикла с постусловием do
- Оператор продолжения continue
- Оператор-переключатель switch
- Оператор разрыва break
- Оператор перехода goto
- Оператор возврата return
- Оператор цикла foreach
- A7.11. Оператор побитового И
- 2.1.3. Оператор варианта (переключатель)
- 2.1.2. Неполный условный оператор
- ОПЕРАТОРЫ
- 4.4.1. Условный налоговый зачет
- Оператор-выражение
- Оператор перехода goto
- A7.13. Оператор побитового ИЛИ
- 2.1.1. Альтернатива (условный оператор)
- 4.13.1. Условный оператор (?:)
- А7.16. Условный оператор