多选择结构还有一个实现方法就是 switch case 语句。
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。
switch 语句中的变量类型可以是:
byte、short、int或者char。
从Java SE 7 开始
switch 支持字符串 String 类型了
同时 case 标签必须为字符串常量或字面量。
switch(expression){
case value;
//语句
break; //可选
case value;
//语句
break; //可选
//你可以有任意数量的case语句
default ://可选
//语句
}
char例子
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透 //switch 匹配一个具体的值
char grede = 'G';
switch (grede){
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("GG");
break;
default:
System.out.println("跑题了");
}
}
}
String类型
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "我爱学Java";
//JDK 7的新特性,表达式结果可以是字符串
//字符的本质还是数字
//反编译 java ---class (字节码文件)---反编译(IDEA)
switch (name){
case "我不爱学习":
System.out.println("我不爱学习");
break;
case "我爱学Java":
System.out.println("我爱学Java");
break;
default:
System.out.println("家里蹲");
}
}
}
反编译上面的代码为
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.kuang.struct;
public class SwitchDemo02 {
public SwitchDemo02() {
}
public static void main(String[] args) {
String name = "我爱学Java";
byte var3 = -1;
switch(name.hashCode()) {
case -1977062296:
if (name.equals("我爱学Java")) {
var3 = 1;
}
break;
case -1960716785:
if (name.equals("我不爱学习")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("我不爱学习");
break;
case 1:
System.out.println("我爱学Java");
break;
default:
System.out.println("家里蹲");
}
}
}


