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;