switch多选择结构
多选择结构还有一个实现方式就是switch case语句。
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch(expression){
case value :
//语句
break;//可选
case value :
//语句
break;//可选
//你可以有任意数量的case语句
default ://可选
//语句
}
switch 语句中的变量类型可以是:
1.byte、short、int或者char。
2.从Java SE 7开始。
3.switch 支持字符串String类型。
4.同时case标签必须为字符串常量或字面量。
package com.struct;
public class SwitchDemo1 {
public static void main(String[] args) {
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;
default:
System.out.println("不合法");
}
}
}
注意 :
记得加上break,不加的话case下面都会顺序执行,不会跳出switch
public class SwitchDemo2 {
public static void main(String[] args) {
String name = "张三";
//JDK7的新特性,表达式结果可以是字符串!!!
//字符串的本质还是数字
//反编译 java---class(字节码文件)----反编译(IDEA)
switch(name){
case "里斯":
System.out.println("里斯");
break;
case "张三":
System.out.println("张三");
break;
default:
System.out.println("狂神");
}
}
}
反编译:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.struct;
public class SwitchDemo2 {
public SwitchDemo2() {
}
public static void main(String[] args) {
String name = "张三";
byte var3 = -1;
switch(name.hashCode()) {
case 774889:
if (name.equals("张三")) {
var3 = 1;
}
break;
case 1183075:
if (name.equals("里斯")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("里斯");
break;
case 1:
System.out.println("张三");
break;
default:
System.out.println("狂神");
}
}
}