switch语句
(1)用于做选择使用的。一般用于几个常量(if主要是做范围的判断)的判断。
switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。
所以,针对几个常量的判断,一般选择switch语句。
也就是一般输入一个数据,判断你输入的数据是具体的哪个数的时候 会用switch,但是开发中一般没人用
一般开发中能用都用if 因为if 不仅能做常量的判断 也能做 范围的判断
(2)switch语句的格式:
switch(表达式)
{
default:
语句体n;
break;
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
}
A:针对格式的解释
switch:
表达式最后的结果必须是:byte , short , int , char
JDK5以后可以是枚举(以后讲)
JDK7以后可以是字符串(后面讲)
case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。
case后面的值是不能够重复的。
break:
switch语句执行到这里,就结束了。
default:
当所有的case和表达式都不匹配的时候,就走default的内容。
它相当于if语句的else。一般不建议省略。
B:执行流程
进入switch语句后,就会根据表达式的值去找对应的case值。
如果最终没有找到,那么,就执行default的内容。
C:注意事项:
a:case和default 在书写上是没有先后顺序的,但是执行上 会先去找对应的case值,
找到了之后 紧接着执行case后面的break 结束switch语句,如果没有找到case对应
的值 就会执行default,而这时候如果default写到了case上面,而且default后面还没有写
break,就会顺序执行下来(也会执行case里面的语句)直到遇到一个break才结束。
b:default整体可以省略吗?
可以,省略不写,语法上是可以的,但是,一般不省略,它相当于if的else语句,
可以控制所有的非正常情况。假如你非常明确没有非正常情况,那就省略。
c:default的位置可以放到前面吗?
可以,语法允许。 但是如果放到前面的话 如果运行到default之后,如果default后面没有break
还会继续去执行case里面的语句,所以一般我们把default放到最后面
d:break可以省略吗?
放在最后面的default的 break 写不写都没有关系,语法也正确而且也不会影响程序结果。
放在case语句中的break可以省略,因为语法是允许的的,但是可能会影响程序的运行结果。
所以,一般不省略
e:switch语句什么时候结束呢?
就是遇到break或者执行到程序的末尾。
人生格言:
勿以恶小而为之,勿以善小而不为!
感谢伙伴的热心加顶 |
|