If (условие) оператор s
Схема работы оператора if (полного и сокращенного) представлена на рис.4.3. .
Рис. 4.3. Структуры ветвления
Условие ветвления алгоритма и программы – выражение языка С (как в циклах). Значение выражения служит условием выбора той или иной ветви программы или алгоритма. Если значение выражения ≠ 0, то условие истинно и выполняется оператор s1, иначе – оператор s2. Одна из ветвей может отсутствовать, тогда при нулевом значении выражения оператор s пропускается (сокращенный условный оператор). Операторы s, s1, s2 могут быть простыми или составными.
Примеры оператора if:
1. if (s >= ‘0’ && s <= ‘9’) printf (“Символ - цифра”);
2. if (x < 0) s1 += x;
else s2 += x;
3. Вычислить значение величины y при следующих условиях:
a*x2 + b2*x, если a < 0,
y = x – a*b, если 0 ≤ a < 1,
1 + x, если a ≥ 1.
/* Фрагмент программы для вычисления величины y */
float a, b, x, y;
scanf (“%f%f%f”, &a, &b, &x);
if ( a < 0 ) y = a *x *x + b *b *x;
else if ( a < 1 ) y = x - a * b;
else y = 1 + x;
4. if (x < 0) { s1 += x; k1++; }
else if (x > 0) s2 += x, k2++;
else k3++;
5. if (i % 2)
if (a > max) max = a;
else ; /* пустой оператор */
else if (a < min) min = a;
Если не написать else ; (с пустым оператором), то компилятор отнесет строку else if (a < min) min = a; ко второму оператору if, а не к первому, что приведет к неверным результатам. Этот фрагмент можно записать иначе:
. if (i % 2)
{ if (a > max) max = a; }
else if (a < min) min = a;