switch语句
if语句一般情况用于处理两个分支的选择结构,当面临处理多个选择结构时,则可进行if语句的嵌套模式,而if语句的嵌套模式一般不超过三层,否则影响程序的易读性。因此,C语言提供了专门处理此类问题的语句——switch语句。
一般形式:
switch(表达式)
{
case 常量表达式 1:语句1;
case 常量表达式 2:语句2;
......
case 常量表达式 n:语句n;
}
同时,值得注意的是: switch(c)语句中,c只能是整型表达式,如int 、long、 char(char为字符型,而其对应得结果为ASCII码值,同样可以使用),而像float(单精度浮点型)则不可以使用;
在switch语句中不使用break语句
当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不在进行判断,继续执行后面的所有case后的语句。
例如
int main()
{
int day=1;
scanf("%d,&day");
switch (day)
{
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
case 4:printf("Thursday\n");
case 5:printf("Friday\n");
case 6:printf("Saturday\n");
case 7:printf("Sunday\n");
}
return 0;
}
当输入1时,“表达式的值=常量表达式 1的值”则将执行语句1及其后面的语句,使得结果不止打印“Monday”,打印结果如下
在switch语句中使用break语句
switch(表达式)
{
case 常量表达式 1:语句段 1 ; break;
case 常量表达式 2:语句段 2 ; break;
....…
case 常量表达式 n:语句段 n ; break;
default :语句段 n+1 ; break;
}
break的语句的作用:在switch语句中,用于跳出switch语句,继续执行switch语句后面的语句;
而在循环语句体内,迫使所在循环立即终止(跳出当前循环体),继续执行循环体语句后面的第一条语句。
例如:同样执行打印语句Monday-Sunday时
int main()
{
int day=1;
scanf("%d,&day");
switch (day)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
}
return 0;
}
我们输入1,则单独打印“Monday”,将不会执行后面的语句,因为通过break语句跳出了该分支语句.
break语句并不是在每个case语句后面都要加上,可以根据自己所需设计在最佳位置添加break语句,要达到自己想要的结果。