Java switch多选择
switch与case一起用
switch(表达式1){
case value1 :
//语句
break;
case value2 :
//语句
break;
}
注意加break
如果没有break,则在执行完当前的case中的语句后,会继续默认穿透继续执行下一个case中的语句(无论是否满足下个case条件)
package struct;
public class SwitchDemo1 {
public static void main(String[] args) {
char grade = 'A';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
}
}
}//输出为 优秀
package struct;
public class SwitchDemo1 {
public static void main(String[] args) {
char grade = 'B';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
}
}
}
此时caseB中没有break,执行完后会穿透到caseC,因此输出为:
良好
及格
字符串的switch
package struct;
public class SwitchDemo{
public static void main(String[] args) {
String name = "Java";
switch (name){
case "Java":
System.out.println("Java");
break;
case "编程":
System.out.println("编程");
break;
default:
System.out.println("中英");
}
}
}
反编译:.class反编译。可以执行的程序一定生成了.class
每个对象都有自己的hashCode//哈希Code
将.class文件拉到.java源码的文件夹下再用IDEA打开.class即可
代码
package struct;
public class SwitchDemo{
public static void main(String[] args) {
String name = "Java";
switch (name){
case "Java":
System.out.println("Java");
break;
case "编程":
System.out.println("编程");
break;
default:
System.out.println("中英");
}
}
}
.class打开:字符串显示为hashCode
package struct;
public class SwitchDemo {
public SwitchDemo() {
}
public static void main(String[] args) {
String name = "Java";
byte var3 = -1;
switch(name.hashCode()) {
case 1039797://每个都有自己的hashCode
if (name.equals("编程")) {
var3 = 1;
}
break;
case 2301506:
if (name.equals("Java")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("Java");
break;
case 1:
System.out.println("编程");
break;
default:
System.out.println("中英");
}
}
}