c语言里,switch语句里的default的语句上下都有case语句的话,default是什么时候执行呢?
如:
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语言
default是在指其他所有情况都不符合才执行。你这都没有break,case 1执行三个语句,case 2执行最后一句,其他执行后面两个语句
也就是如果条件不是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。
default条件控制,从性质上讲,它和case的作用差不多,,不过它的意思是当你输入的数,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,以免得不到自己想要的结果。