switch statement

来自cppreference.com
< cpp‎ | language

 
 
C++语言
表达式
替代表示
字面量
布尔型 - 整型 - 浮点型
字符型 - 字符串 - nullptr (C++11)
用户定义 (C++11)
Utilities
属性 (C++11)
Types
typedef声明
类型别名声明 (C++11)
Casts
隐式类型转换 - 显示类型转换
static_cast - dynamic_cast
const_cast - reinterpret_cast
内存分配
类特有的函数属性
静态成员函数
模板
杂项
 
执行代码的整体参数值
原文:
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_expressionistatementi(如果有的话)和所有后续语句(除了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