switch
- 拿到条件表达式的返回值(
注意返回值必须是整型,或者可以转换为整数的类型
) - 利用条件表达式的返回值和switch后面大括号中的每一个case进行比较,判断条件表达式的返回值和case后面的整数是否相等
- 如果条件表达式的返回值等于某一个case后面的整数,那么就执行该case后面的语句
- 执行完语句后,如果遇到break就会结束整个switch语句,也就是说后面的所有语句都不执行了
- 如果前面的case不满足,也就是前面的case的整数和条件表达式的返回值不相等,就会继续判断后面的case
- 如果前面所有的case都不满足,那么就会执行default后面的语句
switch(条件表达式){
case 整数:
//语句
break;
case 整数:
//语句
break;
case 整数:
//语句
break;
default:
//语句
break;
}
-
switch语句的结束
- 遇到break
- 执行到switch对应的大括号的结束
-
switch语句的注意点
返回值必须是整数
char类型可以转换为int类型,所以也返回值也可以是char类型
case的取值不能重复
case后面不能放变量,因为系统在编译的时候回对switch后面所有的case进行优化,会根据case后面的常量值,生成一张取值表
default的位置可以随便放,不一定在最后,但是习惯放最后
只有所有case都不满足的情况下才会执行default
case后面的语句块中如果定义了变量,那么就必须加上大括号,如果没有定义变量,那么可以不用加
-
什么时候使用?
- 一般使用if,只有对一些比较少的固定值进行判断的时候才会采用switch
//专门用来获取字符,会从输入缓冲区中获取字符
getchar();