Если выражение не равно, то выполняется оператор или группа операторов, иначе этот оператор пропускается. Группа операторов заключается в фигурные скобки.
if(x<y && y<z) min=x;
if – else
if (<выражение>)
<оператор 1>;
else <оператор 2>;
Если <выражение> не равно 0, то выполняется следующее после if, иначе выполняется оператор, следующий за словом else.
Пример
Вычислить
#include<math.h>
#include <stdio.h>
void main()
{
float a,b,c;
printf(“\n\t Введите a=”); scanf(“%f”, & a);
b=6.1*cos(2*a(M_PI) – 4.4*cos(M_PI*a/2);
if(b)
c=3.8*sqrt(exp(b-1))+b;
else
c=2.3*pow(fabs(b)+1, 1./3)-b;
printf(“\n При a=%5.2f и b=%5.2f \t c=%5.2f \n”, a,b,c);
}
Структура if(выр. 1) <опер. 1>;
else if (выр. 2) <опер. 2>;
else ……………. ;
if (выр. n) <опер. n>;
else <опер.>;
Условие проверяется сверху вниз. Как только какое-либо из условий принимает значение истины, выполняется оператор, следующий за условием, и вся остальная часть конструкции будет проигнорирована.
Пример:
Дано действительное число x и
Программа
if (x<=0) f=0;
else if (x>0 && x<=1)
f=x*x – x;
else f=x*x – sin(M_PI*x*x);
Другая форма оператора
if(<условие 1>)
if(<условие 2>) <оператор 1>;
else <оператор 2>;
В такой форме непонятно к какому оператору if относится else. Оператор else ассоциируется с ближайшим if .
int i=3;
if(i-3)
if(i= =3)
i=1;
else i=2;
printf (“\n i=%d \n”, i);
Результат: i=3
Оператор if-else нужен для того, чтобы программа выполнила два разных действия в зависимости от истинности некоторого выражения. В простейшем случае оператор if-else выглядит следующим образом:
if (выражение)
действие_если_истина;
else
действие_если_ложь;
В этом операторе, если выражение истинно, выполняется действие_если_истина; если же выражение ложно, выполняется действие_если_ложь. Рассмотрим пример:
if(ckeypressed = = UP)
iy_pixel_coord++;
else
iy_pixel_coord--;
В этом примере текущая горизонтальная координата увеличивается или уменьшается в зависимости от значения, хранящегося в символьной переменной ckeypressed.
Любое из выражений — выражение_если_истина, выражение_если_ложь, или оба вместе — могут быть составным оператором или блоком, заключенным в фигурные скобки. Синтаксис этих трех вариантов:
if (выражение) {
действие_если_истина1;
действие_если_истина2;
действие_если_истина3;
}
else
действие_если_ложь;
if (выражение)
действие_если_истина;
else {
действие_если_ложь1;
действие_если_ложь2;
действие_если_ложь3;
}
if (выражение) {
действие_если_истина1;
действие_если_истина2;
действие_если_истина3;
}
else {
действие_если_ложь1;
действие_если_ложь2;
действие_если_ложь3;
}
Где бы ни стоял блок выполняемых операторов, не нужно ставить точку с запятой после закрывающейся фигурной скобки (}).
В следующей программе на С используется оператор if-else, в котором часть if является составным блоком:
#include <stdio.h>
main()
{
char c;
int ihow many, i, imore;
imore=l;
while(imore == 1)
{
/* Введите название изделия */
printf("Please enter the product name: ");
if(scanf("%c",&c) != EOF) {
whiie(c != '\n')
{
printf("%c",c);
scanf("%c",&c);
}
/* сколько закуплено? */
printf("s purchased? ");
scanf("%d",&ihow_many);
scanf("%C",&c);
for(i = l;i <= ihow_many; i++)
printf ("*") ;
printf ("\n") ; } else
imore=0;
}
return (0); }
Программа запрашивает у пользователя название изделия и, если пользователь не ввел символ Z(EOF), вводит по буквам название изделия и печатает эхо-отображение информации на следующей строке. Строка "s purchased" добавляется к названию изделия, и запрашивается количество проданных единиц. В цикле for печатается соответствующее число звездочек (*). Если пользователь ввел символ Z, то часть if оператора if-else игнорировалась бы и выполнилась бы часть else, где флаг imore устанавливается в ноль, в результате чего программа прекращается.