Условные операторы

 

Оператор 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++»