Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный конспект лекций (семестр 1).doc
Скачиваний:
31
Добавлен:
29.02.2016
Размер:
321.02 Кб
Скачать
      1. Оператор выбора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, четыре из которых будут “пустыми”.

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

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

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

while ( условие )

тело_цикла

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

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

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

do

тело_цикла

while ( условие );

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