Оператор switch в C++ используется для выбора одной из нескольких веток кода в зависимости от значения целочисленного или символьного выражения.
Синтаксис
switch (выражение) {case значение1: // код для значения1break;case значение2: // код для значения2break;default: // код, выполняемый по умолчанию, если ни один из случаев не совпадает}
break - Завершает case и дальнейшее выполнение оператора.
Небольшой пример написания теста при помощи оператора switch
Пример switch
cout <<"Выберите вариант ответа:"<< endl << endl;cout << "Какая самая большая страна в мире?\n\n1. Соединенные Штаты Амиерики\n2. Российская Федерация\n3. Канада\n4. Китай" << endl << endl;
int number; // объявляем целочисленную переменнуюcin >> number; // инициализируем переменнуюswitch (number) {case1 : // если пользователь ввел: 1, то вывести: "НЕВЕРНО!" cout <<"НЕВЕРНО!";break;case2 : // если пользователь ввел: 2, то вывести: "ВЕРНО!" cout <<"ВЕРНО!"; break;case3 : cout <<"НЕВЕРНО!";break;case4 : cout <<"НЕВЕРНО!";break;default: cout <<"Такого варианта ответа не существует!"<< endl; // ответ при других значениях переменнойbreak;}
Выше написанный пример теста с использованием оператора switch можно продлить добавив большее количество вопросов, а так же сделать подсчет балов с помощью конструкции if и применения инкремента для добавления баллов за каждый правильный ответ.
В конце же просто выводим нашу переменную к которой мы каждый раз прибавляли единицу за правильный ответ. cout << "Ваш результат: " << x << "/3";
Полный код теста
cout <<"Выберите один вариант ответа:"<< endl << endl;cout <<"===================================================="<< endl << endl;cout << "Какая самая большая страна в мире?\n\n1. Соединенные Штаты Амиерики\n2. Российская Федерация\n3. Канада\n4. Китай" << endl << endl;
cout <<"===================================================="<< endl << endl;int number;cin >> number;switch (number){case1 : cout <<"Неверно!";break;case2 : cout <<"Верно!";break;case3 : cout <<"Неверно!";break;case4 : cout <<"Неверно!";break;default: cout <<"Такого варианта ответа не существует!"<< endl;break;}int x =0;if ( number ==2 ){ x++;}cout <<"Выберите один вариант ответа:"<< endl << endl;cout <<"===================================================="<< endl << endl;cout <<"2 + 2 * 2 = ?"<< endl << endl;cout <<"===================================================="<< endl << endl;int number2;cin >> number2;switch (number2){case6: cout <<"Верно!";break;default: cout <<"Неверно!"<< endl;break;}if (number2 ==6){ x++;}cout <<"Выберите один вариант ответа:"<< endl << endl;cout <<"===================================================="<< endl << endl;cout << "Президент США убитый Ли Харви Освальдом?\n\n1. Джон Кеннеди\n2. Джордж Буш\n3. Барак Обама\n4. Дональд Трамп" << endl << endl;
cout <<"===================================================="<< endl << endl;int number3;cin >> number3;switch (number3){case1: cout <<"Верно!";break;case2: cout <<"Верно!";break;case3: cout <<"Неверно!";break;case4: cout <<"Неверно!";break;default: cout <<"Такого варианта ответа не существует!"<< endl;break;}if (number3 ==1){ x++;}cout <<"Ваш результат: "<< x <<"/3";
ДЗ
Написать простой калькулятор. Пользователь вводит значение двух переменных. Описать меню в консоли для математических операций сложения, вычитания, умножения, деления. Через оператор switch реализовать математическую операцию соответствующую пункту меню.
Если для калькулятора нам вдруг нужно использовать целочисленные переменные int, а не float, то для действия "деление" можно использовать такую запись:
case 4:
cout << number <<" / "<< number2 <<" = "<< (float) number / number2;break;