C语言switch语句,求大神解释一下,谢谢
发布网友
发布时间:2022-05-13 00:03
我来回答
共4个回答
热心网友
时间:2023-11-01 13:57
switch(k)
{
case 1:
case 4:
case 7: s++;break; // 当k的值为1,4,7时,执行 s++,跳出switch
case 2:
case 3:
case 6:break; // 当k的值为2,3,6时,跳出switch
case 0:
case 5:s+=2;break; //当k的值为0,5时,执行 s+=2, 跳出switch
}
switch中的break作用是跳出switch块。
switch(val){
case v1:
...
// 如果这里有break,则跳出switch,否则,继续执行下一个case中的代码。
case v2:
....
break;
}
switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
追问我在VC++6.0运行里面运行之后结果是s=7,为什么呢?可以解释一下吗?
追答从7到0,switch语句执行:
k=1,4,7 => s++
k=0,5 => s+=2
其它k值时,s不变
可以知道 s++ 执行了三次,s+=2执行了两次,执行后 s=3 + 2 * 2 = 7 。
热心网友
时间:2023-11-01 13:57
switch(ch)
{
case 1 : xxx;
break;
case 2:xxx;
;
case 3:xxxxx;
break;
...............
}
switch中包含和ch相同的字符或数字时执行当ch=1时执行case 1 当ch=2时执行case 2,但是case 2
中没有break语句所以执行完case 2 后继续执行case 3追问对啊,程序先读到k=7,然后就执行s++,输出的结果应该是s=1啊,怎么会是s=7呢?
热心网友
时间:2023-11-01 13:58
如果没有break,顺序往下运行;
比如k = 1,那么执行
case 1;
case 4;
case 7;s++;break;这里有个break就跳出switch().
热心网友
时间:2023-11-01 13:58
k = 7 s++ break s = 1
k = 6 break
k=5 s+=2 break s = 3
k=4 s++ break s = 4
k=3 break;
k=2 break;
k=1 s++ break; s = 5
k=0 s+=2 break s = 7