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

8 Билет

Условный оператор ifиспользуется для разветвления процесса вычислений на два направления.

Его структурная схема:

Формат оператора: if( выражение ) оператор_1; [elseоператор_2; ]

Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно 0 (имеет значение true), выполняется первый оператор, иначе – второй. После этого управление передается на оператор, следующий за условным.

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

Конструкция с отсутствующей ветвью else называется «пропуск оператора», поскольку оператор, следующий за условием либо выполняется, либо пропускается в зависимости от выполнения условия. ( пример if ( a>b)b=1;)

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

&& - И ; || - ИЛИ ( пример if (a>b&& ( a>d||a==0 ))b++; )

В случае нескольких вложенных условий else относится к ближайшему if и фигурные скобки необязательны ( пример if(a<b)if(a<c)m=a;elsem=c;elseif(b<c)m=b;elsem=c; )

Конструкции типа if(a<b)max=b;elsemax=a; можно записать в виде условной операции:

max = (a<b) ?b:a;

Если какая-то переменная используется только внутри условного оператора, рекомендуется объявить её внутри скобок.

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

Формат оператора: switch ( выражение ) {

caseконстантное_выражение_1: [ список_операторов_1 ]

caseконстантное_выражение_2: [ список_операторов_2 ]

[ default: операторы]

}

Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается первому оператору из списка, помеченного константным выражением, значение которого совпало с вычисленным. После этого, если выход из переключателя явно не указан, последовательно выполняются все остальные ветви.

Выход из переключателя выполняется с помощью break или return. Оператор breakвыполняет выход из самого внутреннего из объемлющих его операторов swith, for , while и do. Оператор return выполняет выход из функции, в теле которой он написан.

Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы после слова default ( а при его отсутствии управление передаётся следующему за switchоператору ).

Примечание: В случае синтаксической ошибки в слове default сообщение об ошибке не выдаётся, поскольку компилятор воспримет это слово как допустимую метку оператора.

Оператор безусловного перехода gotoимеет формат: goto метка;

В теле той же функции должна присутствовать конструкция вида: метка: оператор;

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

Оператор goto используется в двух случаях:

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

2.Переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия)

Не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, использующие эти переменные, поскольку в этом случае инициализация не будет выполнена.( … goto label; … inta=5;label:intb=a; … )

Оператор перехода к следующей итерации цикла continueпропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]