switch case 语句判断一个变量与一系列值中某个值相等,每个值称为一个分支
switch 语句中的变量类型可以是:
byte、short、int或者char
从java7开始 swtich支持字符串String类型了
同时case标签必须为字符串常量或者字面量
switch(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选 //可以有任意数量的case语句 default://可选 //语句 }
package com.kuangshen.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("良好"); case ‘C‘: System.out.println("及格"); default: System.out.println("未知"); } } }
package com.kuangshen.struct; public class SwithDemo02 { //jdk7新特性,表达式结果可以是字符串 //字符的本质还是数字 //反编译 java --class(字节码文件)--反编译(IDEA) public static void main(String[] args) { String name = "狂神"; switch (name){ case "11": System.out.println("11"); break; case "狂神": System.out.println("狂神"); break; default: System.out.println("default"); break; } } }
//反编译文件 // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.kuangshen.struct; public class SwithDemo02 { public SwithDemo02() { } public static void main(String[] args) { String name = "狂神"; byte var3 = -1; switch(name.hashCode()) { case 1568: if (name.equals("11")) { var3 = 0; } break; case 941788: if (name.equals("狂神")) { var3 = 1; } } switch(var3) { case 0: System.out.println("11"); break; case 1: System.out.println("狂神"); break; default: System.out.println("default"); } } }
原文:https://www.cnblogs.com/cjybarcode/p/13081858.html