выражение-условие – управляющее выражение (логическое или арифметическое выражение, отношение), которое используется только для проверки на равенство нулю. Каждый из операторов (оператор, оператор1, оператор2) может быть либо отдельным оператором, либо набором операторов.
В сокращенной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор. Например:
if (x<y && x<z) min=x;
В полной форме оператора условия: если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор1, при нулевом значении выражения-условия (т.е. ложно) выполняется оператор2. Например:
if (d>=0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
cout<< "\nx1="<<x1<<"x2="<<x2;
}
else cout<<"\nРешения нет";
Допускается использование вложенных операторов условия if. Оператор условия if может быть включен в конструкцию if или в конструкцию else другого оператора условия if. Чтобы сделать программу более читаемой, рекомендуется группировать операторы и конструкции во вложенных операторах условия if, используя фигурные скобки. Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким if, для которого нет else.
Например:
#include <stdio.h>
void main ( ) {
int t=2, b=7, r=3;
if (t>b) {
if (b < r) r=b;
}
else r=t;
}
В результате выполнения программы r станет равным 2.
Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:
#include <stdio.h>
void main ( ) {
int t=2, b=7, r=3;
if (t>b)
if (b < r) r=b;
else r=t;
}
В этом случае r получит значение равное 3, так как ключевое слово else относится ко второму оператору условия if, который не выполняется, поскольку не выполняется условие, проверяемое в первом операторе условия if.
Короткий способ записи оператора if – условная операция. Форма записи оператора следующая:
выражение1 ? выражение2 : выражение3;
Выражение1 должно быть целого или плавающего типа или указатель. Если значение выражения1 отлично от нуля (истинно), то результатом операции является значение выражения2. Если выражение1 равно нулю (ложно), то вычисляется выражение3, и его значение является результатом операции.
Например: Нахождение максимального из двух значений и сохранение его в переменной max.
max=(a<b) ? b : a;
Условную операцию удобно использовать в тех случаях, когда переменной необходимо присвоить одно из двух возможных значений.
Пример 1: Введите три целых числа и выведите наибольшее из них на печать.
#include <stdio.h>
void main() {
int x1, x2, x3;
printf("Введите 3 числа \n");
scanf("%d %d %d", &x1, &x2, &x3);
if ((x1>x2)&&(x1>x3))
printf("наибольшее число %d", x1);
if ((x2>x1)&&(x2>x3))
printf("наибольшее число %d", x2);
if ((x3>x2)&&(x3>x1))
printf("наибольшее число %d", x3);
}
Пример 2: Введите три целых числа и выведите их на печать в порядке возрастания.