关于 C/C++ switch语句中default位置的说明

本文深入探讨了Java中switch语句的执行逻辑,特别是在default标签不在末尾时的行为。通过实例,展示了当default位于句首或句中时,switch语句如何执行case,并解释了在遇到break前,代码会如何继续执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

switch语句中的default,一般用在最后,表示在非以上任何情况下发生的case,我们一般习惯在他的后面加上个break。但是,如果default不是在最后,而是在前面或中间会发生什么情况呢?

先看看default在句首的情况:
int i = 2;
switch (i) {
  default:
   System.out.println("default");
  case 0:
   System.out.println("0");
  case 1:
   System.out.println("1");
  case 2:
   System.out.println("2");
    break;
  case 3:
   System.out.println("3");
  case 4:
   System.out.println("4");
    break;
}
他的输出结果是:2! 很明显,不是先执行的default语句!
再看看下面语句:
int i = 8;
switch (i) {
  default:
   System.out.println("default");
  case 0:
   System.out.println("0");
  case 1:
   System.out.println("1");
  case 2:
   System.out.println("2");
    break;
  case 3:
   System.out.println("3");
  case 4:
   System.out.println("4");
    break;
}
他的输出结果是:
default
0
1
2
出人意料!!从default开始向后执行!
再看看default在句中的情况:
int i = 2;
switch (i) {
  case 0:
   System.out.println("0");
  case 1:
   System.out.println("1");
    break;
  default:
   System.out.println("default");
  case 2:
   System.out.println("2");
    break;
  case 3:
   System.out.println("3");
  case 4:
   System.out.println("4");
    break;
}
结果是2!显然还是没执行default!
int i = 8;
switch (i) {
  case 0:
   System.out.println("0");
  case 1:
   System.out.println("1");
    break;
  default:
   System.out.println("default");
  case 2:
   System.out.println("2");
    break;
  case 3:
   System.out.println("3");
  case 4:
   System.out.println("4");
    break;
}
结果:
default
2
显然是从default开始向后执行的!

从上面可以看出:
switch语句中default之前的case按顺序执行(首先确定是否命中case,命中case,从命中case开始执行),最后则执行default,如果在default 之后没有break,则继续执行default之后的语句,直到跳出switch。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值