Пространства имён
Варианты
Действия

switch statement

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
оператор switch
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
Выполняет код по значению аргумента
Оригинал:
Executes code according to value of an integral argument
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Используется там, где одна или несколько из многих отраслей кода должны быть выполнены в соответствии с интегральное значение.
Оригинал:
Used where one or several out of many branches of code need to be executed according to an integral value.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Синтаксис

switch ( expression ) {
case constant_expression1 :
statement1 (необязательно)
case constant_expression2 :
statement2 (необязательно)
... ... ...
case constant_expressionn :
statementn (необязательно)
default: default_statement (необязательно)

}

[править] Объяснение

expression должно быть выражение, конвертируемые в целое число.
Оригинал:
expression shall be an expression, convertible to an integer value.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Все constant_expressions должен быть постоянным выражения, конвертируемые в целое число, которое является уникальным в пределах этого switch заявлении
Оригинал:
All constant_expressions shall be constant expressions, convertible to an integer value, which is unique within this switch statement
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если expression вычисляет значение, равное значению одного из определено constant_expressioni, statementi (если имеется) и все последующие заявления (за исключением default_statement, если он присутствует) выполняются. Если значение expression не соответствует ни одному из constant_expressions, default_statement выполняется, если настоящим.
Оригинал:
If the expression evaluates to a value, equal to the value of one of the defined constant_expressioni, the statementi (if present) and all subsequent statements (except default_statement, if present) are executed. If the value of the expression does not match any of the constant_expressions, the default_statement is executed if present.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
могут быть использованы. В этом случае выполнение switch оператор завершает.
Оригинал:
It is useful to note, that if the execution of subsequent statements is undesirable, the
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Ключевые слова

switch, case, default

[править] Пример

В следующем коде показано несколько случаев использования' переключатель заявлении
Оригинал:
The following code shows several usage cases of the switch statement
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

#include <iostream>
 
int main()
{
    int i = 2;
    switch (i) {
        case 1: std::cout << "1";
        case 2: std::cout << "2";   //execution starts at this case label
        case 3: std::cout << "3";
        case 4:
        case 5: std::cout << "45";
                break;              //execution of subsequent statements is terminated
        case 6: std::cout << "6";
    }
 
    std::cout << '\n';
 
    switch (i) {
        case 4: std::cout << "a";
        default: std::cout << "d"; //there are no applicable constant_expressions
                                   //therefore default_statement is executed
    }
 
    std::cout << '\n';
 
    switch (i) {
        case 4: std::cout << "a";  //nothing is executed
    }
}

Вывод:

2345
d