c语言里,switch语句里的default的语句上下都有case语句的话,default是什么时候执行呢?

首先声明,default是在中间,上下都有case语句。如:case1:x=a;default:x=b;case2:x=c请问default语句是在case语句全部执行完... 首先声明,default是在中间,上下都有case语句。
如:
case 1:x=a;
default:x=b;
case 2:x=c
请问default语句是在case语句全部执行完后再执行么?
或者是等case执行完后再执行default语句?
求详解,谢谢!!!
展开
 我来答
RenKwang
高粉答主

2020-07-13 · 专注解答想答的问题们
RenKwang
采纳数:172 获赞数:33035

向TA提问 私信TA
展开全部

没有break语句就按顺序执行。

可以通过使用关键字default来控制默认构造函数的生成,显式地指示编译器生成该函数的默认版本。

比如:classMyClass{public:MyClass()=default;//同时提供默认版本和带参版本,类型是POD的MyClass(inti):data(i){}private:intdata;};有些时候希望限制默认函数的生成。

典型的是禁止使用拷贝构造函数,以往的做法是将拷贝构造函数声明为private的并不提供实现,这样当拷贝构造对象时编译不能通过,C++11则使用delete关键字显式指示编译器不生成函数的默认版本。

扩展资料:

c语言使用注意:

1、switch语句后面的小括号内不能使用浮点数,只能是字符型和整型,case后面不能是变量; 

2、在相同判断条件的情况下,dowhile比while多循环一次;

3、原反补码:正数的原反补码相同,但负数的原反补码不同,反码除了符号位其他位按位取反,补码在反码的最后一位加一;

4、注意&(按位与)(有一为一,无一为零)与&&、||与|(按位异或)(相同为零不同为一)的区别,一个的为按位运算符、两个的为逻辑运算符,还有一个为按位或^(有一为一,无一为零);  

5、在从语言中如果说明函数的类型不进行说明,默认为int类型。

参考资料:百度百科-c语言

戎荏苒3O
2017-10-22 · TA获得超过583个赞
知道小有建树答主
回答量:239
采纳率:60%
帮助的人:78.9万
展开全部
你试一下不就知道了。几个print,
default是在指其他所有情况都不符合才执行。你这都没有break,case 1执行三个语句,case 2执行最后一句,其他执行后面两个语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
♂凡鸟♂fcb78ab
2013-03-10 · TA获得超过3711个赞
知道小有建树答主
回答量:586
采纳率:100%
帮助的人:617万
展开全部
default是在switch条件不满足case时候默认执行的内容。
也就是如果条件不是1也不是2的话就从default开始执行。

比如:
switch(a)
{
case 1: printf("one");break;
default: printf("three");
case 2: printf("two");break;
}
a=1 输出”one“
a=2 输出”two“
a=3 输出”threetwo “(因为default那句没有break所以会继续执行case 2)

但是你的这段里面没有break,所有case执行完之后会接着执行下一句。所以无论条件是几最后x都是c。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暖心笑匠大叔
2013-03-10 · TA获得超过162个赞
知道小有建树答主
回答量:275
采纳率:66%
帮助的人:46.5万
展开全部
楼主这样写的方式,,实际上起不到这switch语句的作用,,由于它们后面没有break,若你输入的是1,这三个语句都会执行,若是2的话,只执行第三个语句,若你输入的是其他数(不是1也不是2),它都会执行第二句,和第三句。。。。(尴尬!貌似跟你问的问题关系不大了)。。
default条件控制,从性质上讲,它和case的作用差不多,,不过它的意思是当你输入的数,case种没有的,,就会执行它后面的语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangqi8036
2013-03-10 · 超过21用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:67.2万
展开全部
判断的话应该是先判断case的
case和default是和switch配合使用的,用于列出各种可能如
int a=1;
.......(此处省略)
switch(a) //此处开始判断
{
case 1:x=1;break; //如果a的值为1则执行此语句,break用于跳出switch语句;
default:x=2;break; //如果a的值为其它其他值(不是1和3)执行此语句;

case 3:x=3;break; //如果a的值为3则执行此语句

}
很显然上面执行的结果为x=1;但如果像楼主写的那样没有break的话执行结果就是x=3;这是因为当执行完x=1后,并没有跳出switch语句,会继续执行下面的语句,即x=2;x=3;显然执行的为x=3。所以建议以后使用switch语句时每个分支要有个break,以免得不到自己想要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式