switch 语句
除了
if
语句外,C语⾔还提供了
switch
语句来实现分⽀结构。
switch
语句是⼀种特殊形式的
if...else
结构,⽤于判断条件有多个结果的情况。它把多重
的
else if
改成更易⽤、可读性更好的形式。
1
switch
(expression) {
2
case
value1: statement
3
case
value2: statement
4
default
: statement
5
}
上⾯代码中,根据表达式 expression
不同的值,执⾏相应的
case
分⽀。如果找不到对应的值,
就执⾏
default
分⽀。
注:
•
switch
后的
expression
必须是整型表达式。
•
case
后的值,必须是整形常量表达式。
if语句和switch语句的对比
练习:输⼊任意⼀个整数值,计算除3之后的余数
如果使⽤if语句完成,如下:
#
include
<stdio.h>
int
main
()
{
int
n =
0
;
scanf
(
"%d"
, &n);
if
(n%
3
==
0
)
printf
(
"
整除,余数为
0\n"
);
else if
(n%
3
==
1
)
printf
(
"
余数是
1\n"
);
else
如果使⽤switch语句改写,就可以是这样的:
#
include
<stdio.h>
int
main
()
{
int
n =
0
;
scanf
(
"%d"
, &n);
switch
(n%
3
)
{
case
0
:
printf
(
"
整除,余数为
0\n"
);
break
;
case
1
:
printf
(
"
余数是
1\n"
);
break
;
case
2
:
printf
(
"
余数是
2\n"
);
break
;
}
return
0
;
}
printf
(
"
余数是
2\n"
);
return
0
;
}
上述的代码中,我们要注意的点有:
1.
case
和后边的数字之间必须有空格
2.
每⼀个
case
语句中的代码执⾏完成后,需要加上
break ,
才能跳出这个switch语句。
注:
switch
语句中
break
语句是⾮常重要的,能实现真正的分⽀效果。
switch语句中的default
在使⽤
switch
语句的时候,我们经常可能遇到⼀种情况,⽐如
switch
后的表达式中的值⽆法匹
配代码中的
case
语句的时候,这时候要不就不做处理,要不就得在
switch
语句中加⼊
default
⼦句。
switch
(expression) {
case
value1: statement
case
value2: statement
default
: statement
}
switch
后边的
expression
的结果不是
value1
,也不是
value2
的时候,就会执⾏
default
⼦句。
switch语句中的case和default的顺序问题
在
switch
语句中
case
⼦句和
default
⼦句有要求顺序吗?
default
只能放在最后吗?
其实,在
switch
语句中
case
语句和
default
语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以。
不过我们通常是把
default
⼦句放在最后处理的。
完