switch的用法 您所在的位置:网站首页 switch的语法 switch的用法

switch的用法

#switch的用法| 来源: 网络整理| 查看: 265

switch case  判断表达式的一种,类似于 if else

switch() 方法支持数据类型:JDK1.6(char,byte,short,int),JDK1.7(char, byte,short,int, String)

case 表达式可以有多个 类似于 else if

switch case 用法限制

每个case语句要通过break/return结束语句

最后一个分支要是用default 结束switch 语句

支持多个case分支,执行一个判定逻辑

switch case 错误用法解析

error code 1. case 表达式执行结束没有 break/return 结束

public static voidswithcTest(inta){switch(a){case1:

System.out.println(1);case2:

System.out.println(2);case3:

System.out.println(3);

}

}

//运行方法

swithcTest(2);

//打印执行结果

2

3

期望结果打印2完成结束语句,但是程序未结束,并且执行 case 3 表达式

Javap -c xxxx.class

a7b31d8f0e2a2a2124197303c23df404.png

switch case 2 表达式执行完成后,没有结束,继续执行 case 3 表达式,执行后return 结束语句

正确写法

public static void swithcTestReturn(int a){

switch(a){

case 1:

System.out.println(1);

return;

case 2:

System.out.println(2);

return;

case 3:

System.out.println(3);

return;

default:

System.out.println(4);

return;

}

}

//运行方法

swithcTest(2);

//打印执行结果

2

Javap -c xxxx.class

4420423105f489bb300dbf8194ab19d5.png

当 switch case 2 表达式执行完成,return 结束语句

error code 2. default 使用位置错误

public static void swithcTestDefault(int a){

switch(a){

case 1:

System.out.println(1);

return;

default:

System.out.println(4);

case 2:

System.out.println(2);

return;

case 3:

System.out.println(3);

return;

}

}

//运行方法

swithcTestDefault(4);

//打印执行结果

4

2

期望结果打印4完成结束语句,但是程序未结束,并且执行 case 2 表达式后,return结束

Javap -c xxxx.class

e307748aeb2aa637b3a9d49746247642.png

default:36 代码命令行至50行  (46-50行属于case 2 表达式的命令行)

default默认表达式没有在43行执行后 break/return结束,继续往下执行 case 2 表达式

执行到50行时return结束,所以打印结果 4  2

正确写法

public static void swithcTestReturn(int a){

switch(a){

case 1:

System.out.println(1);

return;

case 2:

System.out.println(2);

return;

case 3:

System.out.println(3);

return;

default:

System.out.println(4);

return;

}

}

//运行方法

swithcTestDefault(4);

//打印执行结果

4

if else 案例编码:

public static voidifTest(inta){if(a>1){System.out.println(1);

}else if(a>2){System.out.println(2);

}else{System.out.println(a);

}

}

javap -c xxxx.calss

28d3199c1f4953980a5c68346b0dd4c2.png

总结:if  else 的每个分支执行完成后,会执行goto 结束语句 ,switch case 如果没有写break/return, 默认情况下会继续执行以下命令行

本文地址:https://blog.csdn.net/u014614478/article/details/109263395

希望与广大网友互动??

点此进行留言吧!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有