C语⾔——switch循环
switch的形式
switch(表达式)
{
case常量表达式1:语句1;
case常量表达式2:语句2;
case常量表达式3:语句3;
......
case常量表达式n:语句n;
default: 语句n+1;
}
switch case判断字符串
执⾏过程:①⾸先计算“表达式”的值 ②⽐较表达式1的值与常量表达式的值,从常量表达式1开始,若常量表达式1与表达式的值相同,则执⾏后⾯的语句1,并顺序执⾏语句2、语句3......语句n,不管后⾯的case后的常量表达式是否匹配成功。③如果第⼀个case不匹配,则跳过冒号后的语句1,继续与case2、ase n 相⽐,到⼀个匹配的case,开始执⾏其冒号后⾯的语句。④如果⼀直到case n 还没有到与表达式相等的值,则执⾏default后⾯的语句n+1
注:当与某个常量表达式配对之后,会执⾏该分⽀以及后⾯的所有的语句,除⾮遇到break语句
switch语句的嵌套
在⼀个switch语句内使⽤另⼀个switch语句,即使内部和外部的switch的case常量包含共同的值,也没有⽭盾
例题  程序的运⾏结果是()
1#include<stdio.h>
2void main()
3{
4    int x=1,y=0,a=0,b=0;
5switch(x)
6{
7    case 1:
8    switch(y)
9    {
10        case 0:a++;break;
11        case 1:b++;break;
12    }
13    case 2:a++;b++;break;
14    case 3:a++;b++;
15}
16printf("a=%d,b=%d",a,b);
17}
本题考查switch的嵌套和break语句的使⽤,根据switch的表达式到与之匹配的case语句,从此case语句执⾏下去,不再进⾏判断直到遇到break语句或函数结束为⽌。内层的switch (y)只执⾏了a++,此时a的值为1,然后跳出内层执⾏外层的case 2 语句的a++;b++;a为2,b为1.
运⾏结果为 a=2,b=1