Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП / 4 лаба / Ветвления_Выбор.doc
Скачиваний:
24
Добавлен:
15.04.2015
Размер:
900.1 Кб
Скачать

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

Например, if (a>b) y=2*x;

Операторif в полной форме называется оператором if- else и имеет следующую форму записи:

If (выражение ) оператор1; else опертор2;

Например, if (x>0 && x!=10) y=2*x; else y=x*x;

Здесь выражение – выражение, которое может иметь арифметический тип или тип указателя; оператор1, оператор2 – простые или составные операторы языка. Простой оператор – это один оператор. Составной оператор (блок операторов) – это последовательность из нескольких любых операторов, в том числе операторов описания, заключенных в фигурные скобки.

Например, if (x<=5.6) { float a=2.1; y=a*sin(x); printf("%.4f\n",y) ;}

Следует учитывать, что переменная, описанная в блоке, не существует вне блока.

Операторif называется вложенным, если хотя бы один из операторов оператор1, оператор2 содержит условные операторы, и используется для программирования вложенных ветвлений.

При выполнении оператора if и if- else сначала вычисляется значение выражения выражение. Если полученное значение не равно нулю (имеет значение true), то выполняется оператор1, иначе: для оператора if - управление передаются на оператор, следующий за условным; для оператора if- else - выполняется оператор2, а затем управление передаются на оператор, следующий за условным.

Ниже приведены примеры программирования ветвлений.

Пример 1. Пример 2.

if (a>3) y=a+x; if (a<=3) { ; } else y=a+x;

Пример 3. Пример 4.

if (a>2) { z=2+3*x;

y=sin(z);

} if (x>0) { if (x!=5) y=3*x;

else y= 4*x;

}

else y=5*x+1;

Пример 5.

if (a<=0)

{ y=5*x+1;

z++;

}

else{ cout << " a=" << a;

if (a>7 && a<> 11

y=3*x;

else{ y=4*x; z--;

}

}

В примерах 1 и 2 оператор y=a+x; является простым оператором. В примере 3 оператор { z=2+3*x; y=sin(z);} является составным. Кроме того, примеры 1 и 2 показывают, что неполное ветвление, в котором отсутствуют команды на ветви "Да", может быть приведено к другой форме неполного ветвления путем изменения условия на противоположное (условие, противоположное условию a>3 есть условие a<=3, и наоборот). Из примера 2 видно, что отсутствующие команды ветви "Да" программируются с помощью пустого оператора {;}.

Пример 4 иллюстрирует программирование вложенного ветвления. Фигурные скобки в данном случае не обязательны, так как компилятор относит часть else к ближайшему if.

В 5-ом примере на ветви "Да" внешнего ветвления имеется группа команд, которой соответствует составной оператор { y=5*x+1; z++;}. На ветви "Нет" этого ветвления имеется группа команд, содержащая другое ветвление. Этой группе команд соответствует составной оператор { cout << " a=" << a; if (a>7 && a<> 11) y=3*x; { y=4*x; z--; } }. Вложенное ветвление на ветви "Да" содержит одну команду (соответствующий оператор y=3*x;), а на ветви "Нет" – две команды, которым соответствует составной оператор { y=4*x; z--; } .

Соседние файлы в папке 4 лаба