首先明确一点default不同位置输出是不同的:
例子;
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,d=4,y=10;
switch(y){
case 1:a++;break;
default:d=1;
case 2:b++;break;//b是可以跑进去的
case 4:c++;break;
}
cout << a<<b<<c<<d<< endl;
return 0;
}结果:
1331例子:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,d=4,y=10;
switch(y){
case 1:a++;break;
case 2:b++;break;
default:d=1;
case 4:c++;break; //c++是跑进去了
}
cout << a<<b<<c<<d<< endl;
return 0;
}结果:
1241
解释:这是在程序中debug的,原理:程序一步一步的跑,遇到default包进去,接下来语句包进去,遇break跳出switch,就是结果,网上有很多不对,注意。下面是debug截图。再来一个例子:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,d=4,y=10;
switch(y){
case 1:a++;break;
default:d=1; case 2:b++;
case 4:c++;break;
}
cout << a<<b<<c<<d<< endl;
return 0;
}结果:
1341
c++中switch的default问题1331,不同位置结果不同
原创
©著作权归作者所有:来自51CTO博客作者ZhangJiQunMXP的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
求2进制中不同位的个数
1、按位与2、按位异或
按位与 按位异或 2进制不同位 个数 计数器