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

首先声明,default是在中间,上下都有case语句。
如:
case 1:x=a;
default:x=b;
case 2:x=c
请问default语句是在case语句全部执行完后再执行么?
或者是等case执行完后再执行default语句?
求详解,谢谢!!!

没有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语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-22
你试一下不就知道了。几个print,
default是在指其他所有情况都不符合才执行。你这都没有break,case 1执行三个语句,case 2执行最后一句,其他执行后面两个语句
第2个回答  2013-03-10
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。
第3个回答  2013-03-10
楼主这样写的方式,,实际上起不到这switch语句的作用,,由于它们后面没有break,若你输入的是1,这三个语句都会执行,若是2的话,只执行第三个语句,若你输入的是其他数(不是1也不是2),它都会执行第二句,和第三句。。。。(尴尬!貌似跟你问的问题关系不大了)。。
default条件控制,从性质上讲,它和case的作用差不多,,不过它的意思是当你输入的数,case种没有的,,就会执行它后面的语句
第4个回答  2013-03-10
判断的话应该是先判断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,以免得不到自己想要的结果。
相似回答