Инструкция While в C++
Теперь познакомимся с еще одной инструкцией выбора — switch. Инструкция switch обеспечивает многонаправленное ветвление. Она позволяет делать выбор одной из множества альтернатив. Хотя многонаправленное тестирование можно реализовать с помощью последовательности вложенных if-инструкций, во многих ситуациях инструкция switch оказывается более эффективным решением. Она работает следующим образом. Значение выражения последовательно сравнивается с константами из заданного списка. При обнаружении совпадения для одного из условий сравнения выполняется последовательность инструкций, связанная с этим условием. Общий формат записи инструкции switch таков.
switch(выражение) {
case константа1:
последовательность инструкций break;
case константа2:
последовательность инструкций break;
case константаЗ:
последовательность инструкций break;
.
.
default:
последовательность инструкций
)
Элемент выражение инструкции switch должен при вычислении давать целочисленное или символьное значение. (Выражения, имеющие, например, тип с плавающей точкой, не разрешены.) Очень часто в качестве управляющего s witch-выражения используется одна переменная.
Последовательность инструкций default-ветви выполняется в том случае, если ни одна из заданных case-констант не совпадет с результатом вычисления switch-выражения. Ветвь default необязательна. Если она отсутствует, то при несовпадении результата выражения ни с одной из case-констант никакое действие выполнено не будет. Если такое совпадение все-таки обнаружится, будут выполняться инструкции, соответствующие данной case-ветви, до тех пор, пока не встретится инструкция break или не будет достигнут конец switch-инструкции (либо в default-, либо в последней case-ветви).
Итак, для применения switch-инструкции необходимо знать следующее
■ Инструкция switch отличается от инструкции if тем, что switch-выражение можно тестировать только с использованием условия равенства (т.е. на совпадение switch-выражения с одной из заданных case-констант), в то время как условное if-выражение может быть любого типа.
■ Никакие две case-константы в одной switch-инструкции не могут иметь идентичных значений.
■ Инструкция switch обычно более эффективна, чем вложенные if-инструкции.
■ Последовательность инструкций, связанная с каждой case-ветвью, не является блоком. Однако полная switch-инструкция определяет блок. Значимость этого факта станет очевидной после того, как вы больше узнаете о C++.
#include <iostream>
using namespace std;
int main () {
int choice;
cout << "Справка по темам:\n\n";
cout << "1. for\n";
cout << "2. if\n";
cout << "3. switch\n\n";
cout << "Введите номер темы (1-3): ";
cin >> choice;
cout << "\n";
switch(choice) {
case 1:
cout << "for - это самый универсальный цикл в С++.\n";
break;
case 2:
cout << "if - это инструкция условного ветвления.\n";
break;
case 3:
cout << "switch - это инструкция многонаправленного ветвления.\n";
break;
default:
cout << "Вы должны ввести число от 1 до З.\n";
}
}
Как показано в следующем примере, в switch-конструкцию можно включать “пустые” case-ветви,
switch(i) {
case 1:
case 2: // <— Пустые case-ветви.
case 3:
cout « "Значение переменной i меньше 4."; break;
case 4:
cout « "Значение переменной i равно 4."; break;
Если переменная i в этом фрагменте кода получает значение 1, 2 или 3, отображается одно сообщение: Значение переменной i меньше 4.
Если же значение переменной i равно 4, отображается другое сообщение: Значение переменной i равно 4.
Использование “пачки” нескольких пустых case-ветвей характерно для случаев, когда при выборе нескольких констант необходимо выполнить один и тот же код.
Оставить свой ответ: