Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП Методичка.doc
Скачиваний:
39
Добавлен:
24.02.2016
Размер:
594.43 Кб
Скачать

2.1. Теоретические сведения Оператор условной передачи управления if

Для выбора одной из ветвей вычислений применяется оператор условного перехода:

if (выражение) оператор 1;

else оператор 2;

вычисляется выражение, и если его значение не равно 0 (истинно), то выполняетсяоператор 1, иначе –оператор 2, например:

if(x>y) max = x;

else max = y;

Если операторы 1,2содержат более одного оператора, то они заключаются в фигурные скобки{ }, т.е. применяетсяблок.

Конструкция elseможет отсутствовать и такую форму называютсокращенной, тогда в случае ложности условия управление передается на следующий заifоператор.

Если операторы 1,2в свою очередь являются операторамиif, то такой оператор называютвложенным, при этом ключевое словоelseпринадлежит ближайшему предшествующемуif.

Например, найти наибольшее значение из трех чисел x,y,z:

if (x>y)

if (x>z) max=x;

else max=z;

else if(y>z) max=y;

else max=z;

Операции сравнения:<(меньше),<=(меньше или равно),>(больше),>=(больше или равно),!=(не равно),= =(равно). Пары символов разделять нельзя.

Операции сравнения бинарные, их общий вид:

Операнд 1 знак операции Операнд2

Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу.

Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета:

!(отрицание или логическое НЕ – унарная операция),&& (конъюнкция или логическое И),||(дизъюнкция или логическое ИЛИ).

Например: (0<x)&&(x<=100)

((!x)&&(y>0)||((z==1)&&(k>0))

Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен.

Тернарная (условная) операция ?:

Ее общая форма:

Операнд 1 ? Операнд2 : Операнд 3

Если значение операнда 1 истинно (не равно 0), то результатом операции являетсяоперанд2, иначе –операнд3.

Например, найти наибольшее из двух чисел: max = a>b ? a : b;

Оператор выбора switch

Общая форма оператора выбора (переключателя):

switch(выражение) {

case const_1: операторы; break;

case const_N: операторы; break;

default: операторы;

}

Вычисляется выражениеи проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этогоcase. Значениямиconst_1,…,const_Nмогут быть только целые или символьные константы. Конструкцияdefaultвыполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Операторbreakвыполняет досрочный выход изswitch(после выполнения ветвиcaseвсе остальные будут опущены). Если операторbreakвcaseне записан, то будут выполняться операторы следующих ветвейcaseдо появления оператораbreak, либо до завершения оператораswitch.

Например:

switсh(i) {

case 1: f=pow(x,2); break;

case 2: f=fabs(x); break;

case 3: f=sqrt(x); break;

default: printf(“Ошибка!”); exit(1);

}

f=f+5;