Простая форма оператора if
if (выражение)
оператор1
Блок-схема простой формы оператора
if представлена на рис. 1.
Рис. 1. Блок-схема простой формы оператора if
Если
выражение в скобках истинно, то
оператор выполняется, в противном случае оператор пропускается. Оператор может быть
простым или
составным (блоком). Скобки вокруг выражения обязательны.
Пример 1
if (x > largest)
largest = x;
Пример 2
if (val < min || val > max)
{
printf ("Значение %d выходит за пределы.\n", val);
printf ("Пределы %d - %d.\n",min, max);
}
Пример 3
if (num < 0)
num = - num;
Полная форма оператора if
if (выражение)
оператор1
else
оператор2
Рис. 2. Блок-схема полной формы оператора if
Если выражение в скобках истинно, то
оператор1 выполняется, а
оператор2 пропускается. Если выражение ложно, пропускается
оператор1, а выполняется
оператор2.
Оператор1 и
оператор2 могут быть простыми или блоками. Скобки вокруг выражения, следующего за
ключевым словом if, обязательны.
Пример 4
if (quantity < 1000)
printf ("Количество недостаточное \n");
else
printf ("Количество достаточное \n");
Пример 5
if ( x != 0)
y = y/x;
else
{
printf ("Ошибка");
printf ("Деление на нуль\n");
y = 0;
}
Обычными для многих программ являются серии вложенных операторов if-else. Такая серия может быть записана "ступеньками".
Пример 6
if (hour >= 8 && hour < 17)
rate = rate * 1.02;
else
if (hour >= 17 && hour < 23)
rate = rate * 1.01;
Пример 7
if (age < 13)
printf ("ребенок");
else
if (age < 21)
printf ("юноша");
else
printf ("мужчина");
При использовании вложенных операторов if-else может возникнуть проблема связывания else. else связывается с ближайшим if.
Пример 8
if (c > ' ')
if ( c >= '0'&& c <= '9')
digits += 1;
else
count += 1;
else связывается со вторым if. Оператор, следующий за первым ключевым словом if, является оператором if-else. Переменная count является счетчиком нецифровых символов.
Пример 9
if (c > ' ')
{
if ( c >= '0' && c <= '9')
digits += 1;
}
else
count += 1;
else связывается с первым if. Оператор, следующий за первым ключевым словом if, является блоком. Переменная count является счетчиком управляющих символов.