switch穿透中语句的执行顺序

Day04_SHJavaTraing_4-6-2017

计算下列switch语句的运行结果

1.

 1 int x = 2,y=3;
 2 switch(x){
 3 
 4     default:
 5         y++;
 6 
 7     case 3:
 8         y++;
 9         break;
10 
11     case 4:
12         y++;
13 }
14 System.out.println("y="+y); 

结果:y = 5
分析:首先根据选择情况是x是2,没有找到case是2的选项,所以找到default执行y++,又因为没有遇到break所以产生case穿透,继续往下执行,遇到break跳出,最后y变为5。

2.

 1 char ch = '8';   int r = 10;     
 2 switch (ch) {     
 3     case '7':     
 4         r = r + 3;     
 5 
 6     case '8':     
 7         r = r + 5;   
 8 
 9     case '9':    
10         r = r + 6;    
11         break;     
12 
13     default:     
14         r = r + 8;   
15 }
16 System.out.println(r); 

结果:r = 21
分析:字符ch匹配case ‘8’,执行 r = r + 5; 因为没有break结束流程,继续执行case ‘9’:r = r +6; break中断switch执行,r  = 21

posted @ 2017-04-07 23:42  EzraOholiabXue  阅读(992)  评论(0)    收藏  举报