План лекции
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();
}