Tony 西塔纳 2021-11-26 15:15 采纳率: 100%
浏览 55
已结题

java中swich-case如果不带break,如果有一个case命中,为什么会执行后面不满足条件的case?

问题1:java中swich-case如果不带break,如果有一个case命中,为什么会执行后面不满足条件的case?

int x = 1;
swich (x) {
  case 0 : System.out.println(0);
  case 1 : System.out.println(1);
  case 2 : System.out.println(2);
  case 3 : System.out.println(3);
  default : System.out.println(4);
}

输出结果:
1
2
3

问题2:如果default的位置并不处于最后,那么为什么无case命中时,执行了default之后还会继续执行default后的case中的语句?

int x = 5;
swich (x) {
  case 0 : System.out.println(0);
  default : System.out.println(4);
  case 1 : System.out.println(1);
  case 2 : System.out.println(2);
  case 3 : System.out.println(3);
}

输出结果:
4
1
2
3

想了解一下原理。以及不带break的适用于什么业务场景?

  • 写回答

3条回答 默认 最新

  • xuyanqiangCode 2021-11-26 15:25
    关注

    break相当于中断,你再命中某个case后,就会执行相应的break,如果没有break。他就没有中断,肯定会继续执行下去。
    default 一定是最后才执行的,跟顺序无关。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 创建了问题 11月26日