switch-case再次分析

以下分析并不一定在实际中有用,但是为了学习尤其是为了考试,觉得还是有必要了解的,因为有些东西,大家可能形成了一种“代码定势”,呵呵(通常都说是思维定势)。并不是死研究语法而是为了灵活的懂得一些东西。

default常出现在switch-case语句的最后一行,看下面的代码:
  1. public class TestSwitch {
  2.     public static void main(String[] args){
  3.         byte a = 1
  4.         switch(a){
  5.         case 1 : System.out.println(" A ");break;
  6.         case 2 : System.out.println(" B ");break;
  7.         case 3 : System.out.println(" C ");break;
  8.         case 4 : System.out.println(" D ");break;
  9.         default : System.out.println(" default ");
  10.         }
  11.     
  12.     }
  13. }
输出结果可想而知了:是 A,
但是我们做一下改造,将上面的case中的 break都去掉( 这在实际中要避免,是错误的,为了研究语法所以这样做),可能大家也想到了输出结果:
  1. public class TestSwitch {
  2.     public static void main(String[] args){
  3.         byte a = 1
  4.         switch(a){
  5.         case 1 : System.out.println(" A ");
  6.         case 2 : System.out.println(" B ");
  7.         case 3 : System.out.println(" C ");
  8.         case 4 : System.out.println(" D ");
  9.         default : System.out.println(" default ");
  10.         }
  11.     
  12.     }
  13. }
输出结果为:
 A 
 B 
 C 
 D 
 default 
=================================
我想要说的是default能不能出现在switch中的任何一个地方呢? 答案是肯定的,一种习惯是:default都放在最后,这都是大家习惯的,也是非常好的一种习惯, 为了我们讨论学习 ,所以我把它放到中间的某个地方,看看会出现什么情况:
首先要说明,我把代码中的a值设置成100,这样switch是无法找到匹配的,它会执行default语句,在此时没有break的情况下它会执行完default之后退出还是执行下面的case语句块呢,想象中我们可能认为default应该是最后一种情况,最后执行的代码段,但并非如此:
  1. public class TestSwitch {
  2.     public static void main(String[] args){
  3.         byte a = 100;   
  4.         switch(a){
  5.         case 1 : System.out.println(" A ");
  6.         case 2 : System.out.println(" B ");
  7.         default : System.out.println(" default ");
  8.         case 3 : System.out.println(" C ");
  9.         case 4 : System.out.println(" D ");
  10.         }
  11.     
  12.     }
  13. }
运行结果:
 default 
 C 
 D 
===============我就不分析了,大家慢慢体会吧。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值