黑马程序员技术交流社区

标题: 小知识总结_switch语句_格式与注意事项 [打印本页]

作者: Lingxin    时间: 2016-3-22 23:59
标题: 小知识总结_switch语句_格式与注意事项
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或者执行到程序的末尾。


人生格言:
勿以恶小而为之,勿以善小而不为!

感谢伙伴的热心加顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2