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

Int main ()

{

char Answer = '';

cout « "Продолжить работу? ";

cin » Answer;

switch(Answer)

{

case 'y':

case ' У':

case 'д':

case 'Д':

cout « "Продолжим... \n";

break;

default:

cout « "Завершение...\n";

return 0;

}

// Продолжение работы

...........

return 0;

}

Как видно из примера, пользователю достаточно выбрать любую из букв у, Y, д, Д, чтобы продолжить выполнение программы, либо нажать любую другую клавишу для завершения.

Если же по ошибке пропустить оператор break, на экран будет выведено сразу два сообщения без выполнения содержательной части программы:

Продолжим...

Завершение...

Наиболее эффективно применение связки операторов switch-case с использованием в программе перечислений. В приведенном ниже фрагменте объявляется перечисление цветов гаммы Rainbow и соответствующая этому типу переменная Color. Далее осуществляется сравнение значения переменной Color с заданными значениями цветов.

#include <iostream.h>

Int main ()

{

enum Rainbow {Red, Orange, Yellow, Green, Blue, Cyan,

Magenta};

Rainbow Color;

...

switch(Color)

{

case Red:

case Orange:

case Yellow:

cout « "Выбрана теплая гамма\n";

break;

case Green:

case Blue:

case Cyan:

case Magenta:

cout « "Выбрана холодная гамма\n";

break;

default:

cout « "Радуга не имеет такого "

cout « "цвета!\n";

}

return 0;

}

Если на момент проверки переменная Color примет значение, соответствующее красному(Red), оранжевому (Orange) или желтому (Yellow) цвету, будет выведено сообщение "Выбрана теплая гамма". Если проверяемая переменная будет соответствовать зеленому (Green), синему (Blue), голубому (Cyan) или фиолетовому (Magenta) цвету, будет отображено сообщение "Выбрана холодная гамма". Если же проверяемое значение переменной Color не совпадет ни с одним из вышеперечисленных, будет выведена строка "Радуга не имеет такого цвета!".

Операторы цикла

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

Проверка условия может осуществляться перед выполнением (циклы for, while) или после окончания (do-while) тела цикла.

Циклы могут быть вложенными друг в друга произвольным образом.

Циклы for

Синтаксис цикла for имеет вид:

for(выражение1; выражение2; выражение3)

оператор_или_блок_операторов;// тело цикла

Оператор работает следующим образом. Сначала выполняется выражение1,в котором переменной-счетчику повторений тела цикла присваивается начальное значение. Затем вычисляется величина выражения2, в котором приводится условие выхода из цикла, и, если полученный результат принял истинное значение, выполняется тело цикла (оператор_или_блок_операторов). В противном случае выполнение цикла прекращается и осуществляется переход к оператору, следующему непосредственно за телом цикла.

После выполнения тела цикла вычисляется выражение3, в котором устанавливается шаг изменения счетчика повторений, и осуществляется переход к пункту вычисления величины выражения2.

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

for( ; ; )

cout « "Бесконечный цикл...";

Если в цикле должны синхронно изменяться несколько переменных, которые зависят от переменной цикла, вычисление их значений можно поместить в оператор for, воспользовавшись оператором "запятая".

Типичная ошибка программирования циклов for - изменение значения счетчика как в конструкции (выражение3), так и в теле цикла. Это может приводить к таким негативным последствиям, как "выпадение" итераций.

Рассмотрим несколько примеров.

Для начала просуммируем набор из десяти целых чисел, начиная с 10.

#include <iostream.h>

Соседние файлы в папке ЛекцииКарасева