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

7

1) Управляющие операторы языка определяют порядок вычислений. В приведенных ранее примерах мы уже встречались с наиболее употребительными управляющими конструкциями языка "C"

В языке "C" точка с запятой является признаком конца оператора, а не разделителем операторов.

Фигурные скобки { и } используются для об'единения описаний и операторов в составной оператор или блок, так что они оказываются синтаксически эквивалентны одному оператору.

if - else

Оператор if - else используется при необходимости сделать выбор. Формально синтаксис имеет вид

if (выражение)

оператор-1

else

оператор-2

где часть else является необязательной. Сначала вычисляется выражение; если оно "истинно" /т.е. значение выражения отлично от нуля/, то выполняется оператор-1. Если оно ложно /значение выражения равно нулю/, и если есть часть с else, то вместо оператора-1 выполняется оператор-2.

То, что часть else в конструкции if - else является необязательной, приводит к двусмысленности в случае, когда else опускается во вложенной последовательности операторов if. Эта неоднозначность разрешается обычным образом - else связывается с ближайшим предыдущим if, не содержащим else.

else - if

Конструкция

If (выражение)

оператор

else if (выражение)

оператор

else if (выражение)

оператор

else

оператор

встречается настолько часто, что заслуживает отдельного краткого рассмотрения. Такая последовательность операторов if является наиболее распространенным способом программирования выбора из нескольких возможных вариантов. Выражения просматриваются последовательно; если какоe-то выражение оказывается истинным,то выполняется относящийся к нему оператор, и этим вся цепочка заканчивается. Каждый оператор может быть либо отдельным оператором, либо группой операторов в фигурных скобках.

Оператор множественного выбора switch и оператор разрыва break.

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

{объявления

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

break;

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

break;

.

.

.

default: список_операторов

break;

}

Оператор switch осуществляет выбор одной из нескольких ветвей программы в зависимость от значения выражения в круглых скобках, которое может быть любым выражением, допустимым в языке С, значение которого должно быть целым. Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным выражением, в качестве которого обычно используются целые или символьные константы. За константным выражением следует двоеточие. Все константные выражения должны быть уникальны в пределах оператора switch.

Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, список операторов, помеченный ключевым словом default. Список операторов может быть пустым, либо содержать последовательность операторов, которую не требуется заключать в фигурные скобки. В данном списке не рекомендуется использовать условные и циклические операторы.

В операторе switch не рекомендуется использовать условные и циклические операторы. В операторе switch можно использовать свои локальные переменные, объявления которых находятся перед первым ключевым словом case, однако в объявлениях не должна использоваться инициализация.

Схема выполнения оператора switch следующая:

1. Вычисляется выражение в круглых скобках.

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

3. Если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case, и выполняются все следующие за ним операторы в теле switch, а все ключевые слова case и default игнорируются, и записанные после них операторы выполняются независимо от значений меток.

4. Если ни одно из константных выражений не равно вычисленному, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

Для прерывания выполнения последовательности операторов, соответствующих определенной метке case или default используется оператор break.

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

Использование оператора break позволяет в необходимый момент прервать последовательное выполнение операторов в теле оператора switch путем передачи управления оператору, следующему за switch.

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