План лекции

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

2. Правила использование break

3. Ограничение возможностей оператора switch

4. Сравнение операторов switch и if-else

5. Структурное программирование. Примеры

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

 

Позволяет осуществить выбор (ветвление) по множеству значений целочисленного выражения. Выражение вычисляется и если оно совпадает с каким либо значением метки case, то выполняются все операторы, находящиеся за case, пока не встретится break или конец switch. Если выражение не совпадает ни с одной меткой case, то если есть default, то управление передается на операторы при default, в противном случае switch завершается без выполнения действий. Метка case может быть целой константой, символом или элементом перечисления, заданного оператором enum.


// Пример 7.2.1

/ /Использование оператора switch : параметр выбора - целое

#include <iostream>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

//double number; // error!

unsigned short int number; //long number;

cout << "Введите число от 1 до 5: ";

cin >> number;

switch (number) {

case 0 : cout << "Очень маленькое число!\n"; break;

case 5 : cout << "Хорошая работа!\n";

case 4 : cout << "Правильный выбор!\n";

case 3 : cout << "Превосходно!\n";

case 2 : cout << "Великолепно!\n";

case 1 : cout << "Неправдоподобно!\n"; break;

default: cout << "Очень большое число\n"; break;

}

cin.get();cin.get();

}

 

// Пример 7.2.2

// Использование оператора switch : параметр выбора - символ

#include <iostream>

#include <ctype.h>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

unsigned char letter;

cout << "Введите букву от a до f: ";

cin >> letter;

letter=tolower(letter);

switch (letter) {

case 'a' : cout << "Неправильно (а)!\n"; break;

case 'b' : cout << "Хорошая работа!\n";

case 'c' : cout << " Правильный выбор!\n";

case 'd' : cout << " Превосходно!\n";

case 'e' : cout << " Великолепно!\n";

case 'f' : cout << " Неправдоподобно!\n"; break;

default : cout << " Неправильно (>f)!\n"; break;

}

cin.get();

}

// Пример 7.2.3

// Использование оператора switch: параметр выбора - символ

#include <iostream>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

unsigned char letter;

cout << "Введите букву от a до f: ";

cin >> letter;

switch (letter) {

case 'a' :

case 'A' : cout << " Неправильно (а,A)!\\n"; break;

case 'b' :

case 'B' : cout << "Хорошая работа!\n";

case 'c' :

case 'C' : cout << "Правильный выбор!\n";

case 'd' :

case 'D' : cout << "Превосходно!\n";

case 'e' :

case 'E' : cout << "Великолепно!\n";

case 'f' :

case 'F' : cout << "Неправдоподобно!\n"; break;

default : cout << " Неправильно (>f,F)!\n";

}

cin.get();cin.get();

}

 

// Пример 7.2.4

// Использование оператора switch : параметр выбора - перечисление

#include <iostream>

using namespace std;

enum Variants { Small, Incredible, Splendidly, Excellent, Nice, Good };

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

unsigned short int number;

cout << "Введите число от 1 до 5: ";

cin >> number;

switch (number) {

case Small : cout << "Очень маленькое число!\n"; break;

case Good : cout << "Хорошая работа!\n";

case Nice : cout << "Правильный выбор!\n";

case Excellent : cout << "Превосходно!\n";

case Splendidly : cout << "Великолепно!\n";

case Incredible : cout << "Неправдоподобно!\n"; break;

default : cout << "Очень большое число\n";

}

cin.get();cin.get();

}