【发布时间】:2016-11-23 12:56:26
【问题描述】:
#include<bits/stdc++.h>
using namespace std;
void show(int errorCause)
{
switch(errorCause)
{
case 1:
{
cout<<"in 1\n";
break;
}
case 2: break;
case 3:
{
cout<<"in 3\n";
break;
case 4:
{
cout<<"in 4\n";
case 5: cout<<"in 5\n";
break;
}
}
break;
default:
{
cout<<"in deafult\n";
break;
}
}
return;
}
int main()
{
show(5);
return 0;
}
我使用了这个代码示例,但我无法弄清楚它的流程。根据我的说法,它应该匹配默认条件,因为 errorCause 不匹配任何内容,但它的输出是:
in 5
我不明白为什么它不会进入默认状态?
这是我的构建环境详细信息:
编译器: g++ 4.8.4版(Ubuntu 4.8.4-2ubuntu1~14.04.3)
系统: Ubuntu 14.04(64 位)
【问题讨论】:
-
请格式化你的代码...如果我想象成编译器,我会拒绝直接阅读和解析这段代码。
-
调试器是完美的,当你试图理解代码流时——你可以一步一步地通过一个程序。