Условные операторы
Оператор ifelse имеет следующую синтаксическую диаграмму
if | ( | W | ) | O1 | else | O2 |
где
W – выражение, значением которого может быть либо «истина» (true или «не ноль), либо «ложь» (false или 0).
О1 и О2 – операторы, заканчивающиеся знаком ; (точка с запятой), или блоки. Каждый из опрерторов может быть пустым (просто знак ;).
1 Сложные операторы включают в себя другие операторы
«Практикум по программированию на языке C в среде VS C++»
При выполнении оператора ifelse вначале вычисляется выражение W и если результат – «истина», то выполняется оператор О1, иначе, то есть если результат имеет значение «ложь», выполняется оператор О2.
Оператор ifбезelse имеет синтаксическую диаграмму if ( W ) O1
где W –выражение, О1 – оператор, заканчивающиеся знаком ; (точка с запятой), или блок. При выполнении оператора if вначале вычисляется выражение W и если резуль-тат – «истина», то выполняется О1, иначе управление сразу передается следующему по порядку оператору программы.
Простейшими логическими выражениями являются отношения. Знаки отношений записываются следующим образом: > и < – так же, как в математике, знаки =, ≤, ≥, ≠ записываются парами символов ==, <=, >=, != соответственно. Более сложные логиче-ские выражения рассмотрены в следующем разделе.
Пример. Требуется записать условный оператор, вычисляющий новое значение Y по заданным значениям A, B, X, Y по формуле
то есть в соответствии с алгоритмом
Вот этот оператор: if(A>B)
if(B>= 3)Y=2;
else
«Практикум по программированию на языке C в среде VS C++»
;
elseY=X;
Этому оператору ifelse подчинен оператор присваивания Y=X; и еще один оператор ifelse,который,в свою очередь,содержитпустой оператор(после первогоelse)иоператор присваивания Y=2;. Необходимость использования else во вложенном услов-ном операторе вытекает из следующего правила: else относится к ближайшему пред-
шествующему if, у которого нет части else. Можно было бы не использовать else во вложенном условном операторе, но тогда пришлось бы заключить его в операторные скобки, то есть заменить его блоком {if(B>= 3) Y=2 }:
if (A > B)
{
if (B >= 3)Y=2;
}
else Y=X;
Пример. Для задачи предыдущего примера можно составить другой алгоритм:
Тогда соответствующим ему оператором ifelse будет if(A<=B)
Y=X; else
if (B>=3)Y=2;
и вложенный в него условный оператор естественно использовать в сокращенной форме.
«Практикум по программированию на языке C в среде VS C++»