关于流程控制中的switch-case语句,一直是我的一个弱项. 每当考试或者面试口试的时分,总是丈二和尚摸不着头脑,我想这应该是我基础太差的原因吧! 为了彻底解决这个心病,不得不花点功夫了! 首先从原理上来论述这个效果: switch(表达式) { case 常量表达式1:语句1; .... case 常量表达式2:语句2; default:语句; } 1.default就是假如没有符合的case就执行它,default并不是必需的. 2.case后的语句可以不必大括号. 3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型. 4.一旦case婚配,就会顺序执行前面的顺序代码,而不管前面的case是否婚配,直到遇见break,应用这一特性可以让好几个case执行一致语句. 原理归原理,永颜化妆品上面是几个容易混淆的例子.
1.标准型(case前面都有break语句) int i=3; switch(i) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println("default"); break; } 输出结果: 3
2.特殊型1(不是完全有break语句,可以完成一些特殊应用) int year=2005; int month=3; int day; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: day=28; break; case 4: case 6: case 9: case 11: day=30; break; } 这里 day=31;
3.特殊型2(default的位置) int i=1; switch(i) { case 1: System.out.println(1); default: System.out.println("default"); case 2: System.out.println(2); break; case 3: System.out.println(3); break; } 输出结果: 1 default 2