我是靠谱客的博主 笨笨信封,最近开发中收集的这篇文章主要介绍java中,switch语句的陷阱,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java中,switch语句的陷阱

switch中的default,一般用在最后,表示非以上的任何情况下而发生的情况,
我们一般习惯在他的后面加上个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语句,
如果default后面带有break,那么程序就会正常跳出switch,否则,
程序会继续向后执行switch语句!也就是说,不管default放在什么
位置,它总是在最后一个处理,然后继续向下处理!
所以,最后的处理办法,避免出现以外结果的最好办法就是每一个case
以及default语句都要加一个break!

 

最后

以上就是笨笨信封为你收集整理的java中,switch语句的陷阱的全部内容,希望文章能够帮你解决java中,switch语句的陷阱所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部