多选结构还有一种实现方式就是switch case语句。
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
案例一:case穿透现象,因此每写一个case,都要加一个break
package com.wang.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
/*case穿透现象,
可以使用break终止后面所有的case语句
如果没有break,程序在满足其中一个case语句后将继续执行后面的case语句
规范:每写一个case,都要加一个break
*/
char grade = 'C';
switch (grade) {
case 'A':
System.out.println("优秀");
break; //规范:每写一个case,都要加一个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("未知等级");
}
}
}
结果:
案例二:Scanner交互输入+switch()
package com.wang.struct;
import java.util.Scanner;
public class SwitchDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char c = scanner.next().charAt(0); //从键盘接收字符
switch (c) {
case 'A':
System.out.println("good");
break;
case 'B':
System.out.println("bad");
break;
default: //以上情况都不满足的条件下,执行default
System.out.println("fail");
}
scanner.close();
}
}
结果:
案例三:switch支持字符串String(JDK7之后)
package com.wang.struct;
public class SwitchDemo03 {
public static void main(String[] args) {
String name = "GISer";
//JDK7的新特性,表达式结果可以是字符串!!
//字符的本质还是数字
//反编译 java编译成 class(字节码文件)----反编译(工具:IDEA)
switch (name) {
case "冲冲冲":
System.out.println("A");
break;
case "GISer":
System.out.println("GISer");
break;
default:
System.out.println("Not found");
}
}
}
补充:反编译
反编译:打开【Project Structure】
找到存放class文件的输出路径:
每一个.java文件自动生成对应的.class文件:
右键用Notepad++打开发现是乱码的:
在IDEA中打开:将.class文件复制到.java文件夹中。
打开IDEA,右键刷新struct后,出现刚才复制的字节码文件。
双击查看字节码文件:目前IDEA版本升级了,可以直接显示中文(之前版本显示哈希值):