switch多选择结构
-
多选择结构还有一个实现方法就是 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("家里蹲"); } } }