Инструкция 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-ветвей характерно для случаев, когда при выборе нескольких констант необходимо выполнить один и тот же код.



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы