Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный конспект лекций_1.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
332.29 Кб
Скачать

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

Хотя любые комбинации условий можно выразить с помощью опе­раторов if (if-else), довольно часто запись становится неудобной и запутанной. В тех случаях, когда необходимо выбрать соответствующие действия для ограниченного набора возможных значений целочисленного выражения, можно использовать оператор выбора switch. Пример:

switch (n) {

case 1:

. . .

break;

case 2:

. . .

break;

. . .

default:

. . .

}

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

Выполнение оператора switch заканчивается по достижении либо оператора break, либо конца оператора switch. Метка default может отсутствовать, отсутствие default эквивалентно записи

default:

; // пустой оператор, не выполняющий никаких действий

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

switch (m) {

case 1:

case 3:

case 5:

cout << "!!!";

. . .

}

Следует отметить, что в качестве значений в метках case могут использоваться только целые числовые константы или символы, а также константные (не содержащие переменных) выражения, причем значения, используемые в метках case в пределах одного оператора switch, не должны повторяться. Кроме того, в одной метке case нельзя указать диапазон значений. Это означает, что если, например, для пяти последовательных целых числовых значений необходимо выполнить одни и те же действия, в операторе switch придется записать пять отдельных меток case, четыре из которых будут “пустыми”.

2.3.3.Оператор цикла while

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

Первая форма цикла – цикл с предусловием, в котором проверка условия предшествует выполнению действий. Для записи такого цикла в C++ может использоваться оператор while. Его формат:

while ( условие )

тело_цикла

Здесь условие, как и в условном операторе if, – это выражение, которое принимает логическое значение true (“истина”) или false (“ложь”). Телом цикла может являться простой или составной оператор (блок). Выполнение операторов, составляющих тело_цикла, повторяется до тех пор, пока значением условия является true. Значение выражения, составляющего условие, заново вычисляется перед каждой итерацией. Если первое же вычисленное значение этого выражения – false, тело цикла не выполнится ни разу.

2.3.4.Оператор цикла do–while

Второй формой цикла является цикл с постусловием, где проверка условия следует за выполнением действий. Средством записи этого цикла в C++ является оператор do-while. Он имеет формат

do

тело_цикла

while ( условие );

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