java语言的三种基本结构——顺序、选择、循环。
switch-case是选择结构的重要实现方式。因为虽然实际上switch-case的功能完全可以用if-else代替,但有时用switch-case确实是一种更优雅的实现方式。
比如由一个变量判断星期几,考虑以下代码:
使用if-else的效果:
[java] view plaincopyprint?
1.
2. if(day ==1){
3. System.out.println("星期一");
4. }else if(day ==2){
5. System.out.println("星期二");
6. }else if(day ==3){
7. System.out.println("星期三");
8. }else if(day ==4){
9. System.out.println("星期四");
10. }else if(day ==5){
11. System.out.println("星期五");
12. }else if(day ==6){
13. System.out.println("星期六");
14. }else if(day ==7){
15. System.out.println("星期日");
16. }else{}
17.
使用switch-case会显得优雅的多:
[java] view plaincopyprint?
1.
2. switch(day){
3. case 1:System.out.println("星期一");break;
4. case 2:System.out.println("星期二");break;
5. case 3:System.out.println("星期三");break;
6. case 4:System.out.println("星期四");break;
7. case 5:System.out.println("星期五");break;
8. case 6:System.out.println("星期六");break;
9. case 7:System.out.println("星期日");break;
10. default:
11. }
12.
尤其是遇到类似这样的情况,更显其优雅——可读性强、易于维护:
[java] view plaincopyprint?
1.
2. switch(day){
3. case 1:
4. case 2:
5. case 3:
6. case 4:
7. case 5:System.out.println("工作日");break;
8. case 6:
9. case 7:System.out.println("双休日");break;
10. default:
11. }
12.
要注意的一些情况:
1. switch的break语句是可选的,有时我们会利用这种特性(如上面的代码),但是一般情况下break是不能少的。否则可能会出现意料之外的错误。——没有break,程序会继续执行后面的代码。
2. default语句也是可选的。相当于对应if-else语句最后的else。
3. java语言用于匹配的选择因子必须是整形或字符型常量。这很重要。
4. switch语句的比较是从上往下,所以把匹配概率大的选择因子放在前面可以提高效率。
5. 选择因子具有唯一性,即不能有2个相同的因子存在。
暂时想到这么多,以后想到了再添加吧!