今天想给大家分享的是switch语句,因为我也不会,所以我先好好学习研究了一番。
其实switch语句很早老师就讲过了,只是我又忘记了,刚刚遇到一道题考察if语句和switch语句,正好把这部分知识复习一遍,也就将之分享在此,希望对大家有所帮助。如果有说得不对的地方或者遗漏的,欢迎大家指正补充!
Switch语句。整个语句的结构如下
Switch(变量或者表达式)
{
case 常量表达式:{语句1};break;(其实这里的break也是一个语句,只是说只有这一句,因此 可以看到用了两次分号)
case 常量表达式:{语句2};break;
case 常量表达式:{语句2};break;
…………..
default {语句n};(这里语句是当前面都不满足时执行的,此处不用再加break)
}
整个语句的运行是先计算表达式的值,再用之与下面的case’比较,当表达式的值等于了下面某个case的常量表达式时,则执行该case语句,然后不再进行判断,继续执行case后面的所有语句,当所有case语句都不满足时,就执行default语句。
这里有几个需要给大家强调的点:
1、如果没有加break,则执行该语句之后会接着往下执行所有的语句完成才跳出循环,如果有break,则执行完该语句就跳出switch循环。
大家可以对比下有break和没有的区别,应该就能理解到位了。
2、default的顺序是可以变动的,可以放在最后也可以放在最前面。而各个语句之间如果都加了break则也可以变动,但是如果都没加,则不能随意变动。
因为变动了顺序就改变了,有些题就是这样考察的,比如
b选项在没有加break的情况下改变了case1/2的顺序,最终结果就是不等价的。
3、在case后的各常量表达式的值不能相同,否则会出现错误。
4、case 后面必须是一个整数,或者是结果为整数的表达式,且不能包含任何变量。
5、default语句不是必须的,如果没有且所有case语句都不满足时,则结束循环。且default后面的 子句也不是必须的。
6、case后面的{}也不是必须的。
目前我想到的需要注意的点就是这些。
整个switch语句在我看来,在做条件判断的时候,其实switch语句和if语句都能够运用,而且二者在运行内存和速度上是差不多的,只是说当在面对多种可能性时用switch会显得更简洁,看起来代码更赏心悦目。具体怎么选择看大家实际情况。
目前我作为一名计算机专业学生,一直有在博客上学习,在感谢各位大佬无私的帮助的同时也开始输出自己所学,希望能帮助到更多像我一样的同学。大家一起加油!!!