Условный оператор. Условный оператор служит для бинарного ветвления фрагмента исходного кода программы, в зависимости от условия («истина» или «ложь») выполняется или один
Условный оператор служит для бинарного ветвления фрагмента исходного кода программы, в зависимости от условия («истина» или «ложь») выполняется или один фрагмент кода (оператор) или другой фрагмент кода (оператор).
Формат условного оператора:
if (<выражение>) <оператор1>
[ else <оператор2> ]
Примечание. Далее при записи форматов различных конструкций примем следующие обозначения: оператор или выражение заключаем в скобки <>, точка с запятой («;») после оператора при описании формата не ставится, так как считается, что она входит в состав оператора, или это составной оператор (блок), а элемент, заключенный в квадратные скобки [] (за исключением использования массивов), считается необязательным, т.е. может отсутствовать.
Тип выражения должен быть любым типом, заменяющий логический тип (целым, вещественным, указателем), если значение выражение равно 0, то оно считается ложным, в противном случае, истинным.
Пример:
if (x>=0) y=x; else y=-x; // Переменной y присваивается значение модуля x
Если необходимо объединить несколько операторов, то они объединяются в составной оператор (блок).
Пример:
if (x>0) { y=x; z=x+y; }
else { y=-x; z=x*x+y*y; }
Условный оператор может быть неполным, часть, начинающаяся с else, отсутствует. В этом случае в зависимости от условия или выполняется оператор после if или он не выполняется.
Представляют интерес вложенные условные операторы. Рассмотрим пример:
if (x==1) if (y==1) printf(“x==1 and y==1”);
else printf(“x==1 and y!=1”);
В этом примере ключевое слово else относится ко второму if, первый оператор if является не полным. Следует отметить, что условный оператор if … else … считается одним оператором, он может быть сам внутри условного оператора или быть внутри тела цикла. Правило, позволяющее найти соответствие между if и else в случае вложенных условных операторов, следующее: ищем первое ключевое слово else, оно относится к ближайшему if, которое предшествует ему, ко второму else относится if, которое предшествует отмеченному ранее if и т.д.
Если требуется изменить описанный порядок соответствия if и else при вложенных условных операторах, то с помощью фигурных скобок необходимо организовать составной оператор. В примере:
if (x==1) { if (y==1) printf(“x==1 and y==1”); }
else printf(“x!=1”);
ключевое слово else относится к первому if, второй оператор if является не полным, поэтому после else печатаем x не равно 1, а значение переменной y может быть любым.
Дата добавления: 2015-08-14; просмотров: 829;