Альтернативный оператор условия.
Оператор условия
Чтобы сделать программу «думающей», способной анализировать, возникающие в процессе вычислений, ситуации и принимать правильные решения по дальнейшим действиям, в языке С++ предусмотрен оператор, позволяющий реализовывать такие возможности. Этот оператор получил название оператор условия. Он, в зависимости от какого – либо условия, направляет вычисления по одной или по другой ветви.
Операторы условия бывают двух видов:
– альтернативные,
– безальтернативные.
Альтернативные операторы условия имеют две ветви – основную и альтернативную.
Безальтернативные операторы условия имеют только одну основную ветвь.
Синтаксис альтернативного оператора условия:
if (условие) оператор 1; else оператор 2; |
Здесь if и else – ключевые слова, означающие, соответственно, если и иначе. Оператор имеет две ветви. Основная ветвь представлена оператором 1, который записывается сразу после условия, альтернативная – оператором 2, записанным после ключевого слова else. Условие записывается как логическое выражение, значением которого может быть true («истина») или false («ложь»). Результат логического выражения true означает, что условие выполняется, результат false означает, что условие не выполняется.
Если условие выполняется, то должен выполнятся оператор, записанный в основной ветви (оператор1), в противном случае выполняется оператор альтернативной ветви (оператор2), а оператор1 пропускается.
В каждой из ветвей может быть только один оператор. Если же алгоритмом вычислений предусматривается выполнение в ветви сразу нескольких операторов, то их необходимо объединить и представить как один. Такой объединенный оператор называют составным.
Синтаксис составного оператора следующий:
{ оператор 1; оператор 2; . . . . . . . . . оператор n; } |
Из приведенного синтаксиса видно, что для образования составного оператора, необходимо группу операторов заключить в фигурные скобки.
Пример записи альтернативного оператора условия, отвечает фрагменту блок – схемы:
+ –
if (a > b) x = a;
else x = b;
Условия могут быть представлены более сложными логическими выражениями, чем то, которое показано в уже рассмотренном примере.
Например:
Математическая запись | Запись по правилам С++ |
(x >= 1.5) && (x <= 4.8) | |
или | (x>=0.5) && (x<=0.8)||(x>=4.9) && (x<=11.2) |
В первом примере результат «истина» возможен в случае, когда х принимает любое значение из интервала 1.5 … 4.8, включая и его границы. Во втором примере «истина» возможна, если значения х будут принадлежать области 0.5 … 0.8 или области 4.9 … 11.2.
Логические выражения могут быть различной формы по обе стороны от знака сравнения:
( 5*x – exp(x)) > 3,
(a / b – 1) < (4*x + 2.5).
В этом случае вычисляются выражения по обе стороны от знака сравнения и полученные результаты сравниваются.