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

Используется для разветвления на два направления (смотри рисунок)
Формат оператора:
if (выражение) оператор_1; [else оператор_2;]
Вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю (имеет значение true), выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным.

Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом еlse. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается ветвление. Блок может содержать любые операторы, в том числе описания и другие условные операторы (но не может состоять из одних описаний). Необходимо учитывать, что переменная, описанная в блоке, вне блока не существует.

Примеры:



Пример. Бросают точку на мишень. Определить количество очков.

Решение задачи


Замечания

1) Типичная ошибка: используют при записи условных операторов вместо проверки на равенство ('==' простого присваивания '=', например,
if (a=l) b=0;
Синтаксической ошибки нет, так как операция присваивания формирует результат, который и оценивается на равенство/неравенство нулю. В данном примере присваивание переменной b будет выполнено независимо от значения переменной а. Поэтому константу рекомендуется записывать слева от операции сравнения: if (1==а) b=0;

2) Еще типичная ошибка — неверная запись проверки на принадлежность диапазону. Например, чтобы проверить условие 0<х<1, нельзя записать его в условном операторе непосредственно, так как будет выполнено сначала сравнение 0<х, а его результат (true или false, преобразованное в int) будет сравниваться с 1. Правильно:



Совет. Если переменная используется только внутри условного оператора, то следует объявить ее внутри скобок. Это хороший стиль програмирования. Объявлять внутри оператора if можно только одну переменную. Область видимости начинается в точке объявления и включает обе ветви оператора.

Пример:

if (int i=fun(t)) a-=1; else a+= 1;
Онлайн всего: 6
Гостей: 6
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте