如果default语句在前面(不是switch语句最后一条语句的话,且后面没有break)则要执行后面的case直到遇到break或者执行完毕。如果是最后一条语句,也就执行完了,跳出switch语句
先计算switch括号后面表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,如若后面有break语句,则直接跳出。
如果没有break语句,然后不再进行判断,继续执行后面的case后的语句。直到遇到break语句跳出。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
在C语言中一般会把default条件放到最后,表明没有上面任何case成立时进入default,
C语言是顺序执行的case后面没有break;则会一直往下执行。
int iInput = 2;
switch (iInput)
{
case 1:
{
//如果iInput=1,则会进入case 1,这时会执行 MessageBox(_T("你好C"));
//C语言是顺序执行的,接下来会执行break,表明switch完成,跳出switch
MessageBox(_T("你好C"));
break;
}
case 2:
{
//如果iInput=2,则会进入case 2,这时会执行 MessageBox(_T("C是最强大的"));
//C语言是顺序执行的,没有发现break;则会进入default条件,接下来执行MessageBox(_T("C是最强大的"));
MessageBox(_T("C是最强大的"));
}
default:
{
//如果iInput 不等于1或者2,则会直接跳到default
MessageBox(_T("你会C吗?"));
}
case 3:
{
//如果等于3,则会跳到case 3
MessageBox(_T("我是3"));
break;
}
}
如果有break的话那就直接跳出循环,执行结束,如果没有break的话程序会执行未必在结束!
也就是说程序会和你的case语句中的每一个情况都进行比较配对,有的话就执行,没有的话把循环执行完毕后 跳出循环!
还要执行后面的case,这个我试过