switch java 用法_switch 用法解读

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

希望与广大网友互动??

点此进行留言吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值