Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 执行默认值:C+中的开关大小写选择语句+;_C++ - Fatal编程技术网

C++ 执行默认值:C+中的开关大小写选择语句+;

C++ 执行默认值:C+中的开关大小写选择语句+;,c++,C++,我的代码:- #include <iostream> using namespace std; int main() { int b=10; switch(b) { case 40: cout<<"no"; default: cout<<"yes"; case 10: cout<<"done"; } return 0; } #包括

我的代码:-

#include <iostream>

using namespace std;

int main()
{
    int b=10;
    switch(b)
    {
    case 40:
        cout<<"no";
    default:
        cout<<"yes";
    case 10:
        cout<<"done";
    }
    return 0;
}
#包括
使用名称空间std;
int main()
{
int b=10;
开关(b)
{
案例40:

cout您的程序跳转到第一个匹配的
案例

只有在未找到时,
默认值才会跳到

[C++14:6.4.2/5]:
当执行
开关
语句时,将计算其条件并与每个case常量进行比较。如果其中一个case常量等于该条件的值,则控制权将传递给匹配case标签后面的语句。如果没有与该条件匹配的case常量,并且如果存在
default
label,控制传递到由默认标签标记的语句。如果没有大小写匹配,并且没有
default
,则不会执行开关中的任何语句

每当您发现自己将
开关
视为“一种
if
语句”时,请立即停止


根据我的说法,由于编译器在读取
default:
语句时不知道
案例10:
,因此它还必须执行其中的内容


这不是C++的工作原理;它(比它)更聪明。

程序跳转到第一个匹配<代码>案例< /> > < /P> 只有在未找到时,
默认值才会跳到

[C++14:6.4.2/5]:
当执行
开关
语句时,将计算其条件并与每个case常量进行比较。如果其中一个case常量等于该条件的值,则控制权将传递给匹配case标签后面的语句。如果没有与该条件匹配的case常量,并且如果存在
default
label,控制传递到由默认标签标记的语句。如果没有大小写匹配,并且没有
default
,则不会执行开关中的任何语句

每当您发现自己将
开关
视为“一种
if
语句”时,请立即停止


根据我的说法,由于编译器在读取
default:
语句时不知道
案例10:
,因此它还必须执行其中的内容


这不是C++如何工作的,它(有点)比它聪明。

“根据我所知道的,默认情况下的行为类似于IF选择语句中的其他”。“不,它不。”在交换机中<代码>默认< /代码>的位置并不重要,它比任何其他情况都要重要。“因为编译器不知道
案例10:
“哦,它肯定知道。我不认为这是重复的。编译器并不是只读取您的代码一次,然后在一次传递中解释所有内容。从:”如果条件的计算结果等于某个常量_表达式的值,则控制权将转移到标有该常量_表达式的语句。”“据我所知,默认情况下的行为与If-else选择语句中的else类似。“不,它不是。一个
默认值
在一个开关中的位置并不重要,比其他任何情况都重要。”因为编译器不知道
情况10:
”哦,它肯定知道。我不认为这是重复的。这不是编译器只读取一次代码并在一次传递中解释所有内容的情况。来源:“如果条件的计算结果等于某个常量_表达式的值,则控制权将转移到标记有该常量_表达式的语句。”“它(有点)比这更聪明。”“Hurr Durr,它对我来说就像是一个函数,而不是构造函数调用。”ReksistLe: @记住:在C++中不可能拼出一个“构造函数调用”。当你认为你有,你就没有。“它有点聪明。”这对我来说是一个函数,而不是构造函数调用。@瑞克斯塔利:@瑞卡斯塔利:记住,C++中不可能拼出一个构造函数调用。