Java switch-case语句用法

来源:互联网 发布:虚拟婚纱照软件下载 编辑:程序博客网 时间:2024/05/18 00:58
对于流程控制中的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
0 0