Структура множественного выбора switch C++

Общий синтаксис оператора:

switch(выражение){
case значение1:
	действие1;
	break;
case значение2:
	действие2;
	break;
case значение3:
	действие3;
	break;
......
default:
	действие_по_умолчанию;
	break;
}

Оператор switch достаточно прост в обращении, однако необходимо знать некоторые особенности его работы:

  • Выражение - те данные, которые необходимо проверить на соответствие. Здесь может указываться переменная (но только типа char или целочисленная), либо выражение, результатом которого являются целочисленные данные.
  • Если в case используются символьные значения, они должны указываться в одинарных кавычках, если целочисленные, то без кавычек.
  • Оператор default может располагаться в любом месте системы switch, выполняться он все равно будет в том случае, если нет ни одного совпадения. Однако правилом "хорошего тона" является указывать default в конце всей конструкции.
  • В случае, если необходимо выполнять один и тот же набор действий для разных значений проверяемого выражения, можно записывать несколько меток подряд.
  • После самого последнего оператора в списке (будь то case или default) оператор break можно не указывать.
  • Оператор default можно вообще не указывать, в случае, если не найдется совпадений, просто ничего не произойдет.
  • в case мы пишем фигурные скобки {} только в том случае, если объявляем переменные и хотим ограничить область их видимости.
Если случайно пропустить break в любом блоке case, кроме последнего, и этот блок в последствии отработает, то выполнение switch не остановиться. Тот блок оператора case, который будет идти вслед за уже выполнившимся, так же выполниться без проверки.
# include <iostream>
using namespace std;
void main(){
	// объявление переменной, для хранения буквенной оценки
	char cRate;

	// просьба ввести буквенную оценку
	cout<<"Input your char-rate\n";
	cin>>cRate;

	//анализ введенного значения
	switch (cRate) {
	case 'A':
	case 'a':
		// оценка A или a равноценна 5
		cout<<"Your rate is 5\n";
		break;
	case 'B':
	case 'b':
		// оценка B или b равноценна 4
		cout<<"Your rate is 4\n";
		break;
	case 'C':
	case 'Y':
	case 'k':
	case 'c':
		// оценка C или c равноценна 3
		cout<<"Your rate is 3\n";
		break;
	case 'D':
	case 'd':
		// оценка D или d равноценна 2
		cout<<"Your rate is 2\n";
		break;
	default:
		// остальные символы некорректны
		cout<<"This rate isn't correct\n";
	}
}
PQ VPS сервера в 28+ странах.