Java流程控制05:Switch选择结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java流程控制05:Switch选择结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3384字,纯文字阅读大概需要5分钟。
内容图文
![Java流程控制05:Switch选择结构](/upload/InfoBanner/zyjiaocheng/628/7e6e1055b8e94b49afbe250d93a58f90.jpg)
switch语法:
swicth(expression){
case value://匹配条件1
break;// 结束语句(可选)
case value://匹配条件2
break;// 结束语句(可选)
case value://匹配条件3
break;// 结束语句(可选)
case value://匹配条件4
break;// 结束语句(可选)
defaule://当以上匹配条件都不符合是 则走这个(可选)
}
--------------------------------------------------------
switch(expression){
case value:
//语句
break; //可选
case value:
//语句
break; //可选
//你可以有人以数量的case语句
default: //可选
//语句
}
格式的解释:
- switch:表示这是选择结构
- 表达式:取值有限定
byte short int char - ? JDK5之后加入枚举
? JDK7之后加入String(字符串) - case:后面跟的是要和表达式进行比较的值
- break:表示中断结束的意思,控制switch语句的结束
- default:当所有的值和表达式都不匹配时候执行。
执行流程:
1-首先得出表达式的值
2-然后个case的值进行匹配,如果有值与之对应,则执行该语句,执行过程中遇到break就结束。
3-当所有的表达式结果和所有值都没有匹配成功,则执行default语句,然后结束程序。
面试题:
byte可以作为switch的表达式么?(可以)
long可以作为switch的表达式么?(不可以)
String可以作为switch的表达式么?(JDK7后可以)
注意事项:
- break可以省略,但是得到结果可能有变化,因为省略break程序中断取消(case穿透),程序会向下执行,除特殊情况建议不要省略。
- 多个case后面的常量不允许相同。 例如 列出了两个case:1是不允许的。
- default可以省略但是不建议省略,用来对错误数据处理
- default可以放在任意位置,但是默认在最后。
- switch的结束的条件
遇到break或程序执行到最后。
switch代码示例:
package com.wenjian.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透
char grade = 'C';
switch (grade) {
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("普通");
break;
case 'D':
System.out.println("再接再厉");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("未知成绩");
}
}
}
package com.wenjian.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "qwe";
//JDK7的新特性,表达式结架可以是字符事!!
// 字符的本质还是数字
//反编译 java---class(字背码文件)——-反编译(IDEA)
switch (name) {
case "qwe":
System.out.println("qwe");
break;
case "asd":
System.out.println("asd");
break;
default:
System.out.println("zxc");
}
}
}
反编译:
本地文件夹目录:
反编译需要从项目结构查看目(class文件)
从project查看class输出文件:
然后通过复制粘贴进行拷贝到idea目录,
(直接通过idea界面进行粘贴会提示:)
反编译文件:
从Java SE7开始
switch 支持字符串 String类型了
java文件和反编译文件示例:
.java文件:
package com.wenjian.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "qwe";
//JDK7的新特性,表达式结架可以是字符事!!
// 字符的本质还是数字
//反编译 java---class(字背码文件)——-反编译(IDEA)
switch (name) {
case "qwe":
System.out.println("qwe");
break;
case "asd":
System.out.println("asd");
break;
default:
System.out.println("zxc");
}
}
}
反编译.class 文件,bytecode version:52.0(Java 8):
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.wenjian.struct;
public class SwitchDemo02 {
public SwitchDemo02() {
}
public static void main(String[] args) {
String name = "qwe";
byte var3 = -1;
switch(name.hashCode()) {
case 96882:
if (name.equals("asd")) {
var3 = 1;
}
break;
case 112383:
if (name.equals("qwe")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("qwe");
break;
case 1:
System.out.println("asd");
break;
default:
System.out.println("zxc");
}
}
}
内容总结
以上是互联网集市为您收集整理的Java流程控制05:Switch选择结构全部内容,希望文章能够帮你解决Java流程控制05:Switch选择结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。