public class SwitchDemo {
public static void main(String[] args) {
int x = 3;
switch (x) {//1.选择表达式只能是这四种值 int , short , byte , char
case 3:
System.out.println(“3”);
break;
case 2:
System.out.println(“2”);
break;
case 1:
System.out.println(“1”);
break;
case 4:
System.out.println(“4”);
break;
default:
System.out.println("0");
break;
}
}
}
运行结果为3
2.在switch语句中,备选答案是无序的
即这样也是可以的
public class SwitchDemo {
public static void main(String[] args) {
int x = 3;
switch (x) {
default:
System.out.println(“0”);
break;
case 2:
System.out.println(“2”);
break;
case 1:
System.out.println(“1”);
break;
case 3:
System.out.println(“3”);
break;
case 4:
System.out.println(“4”);
break;
}
}
}
3.只要加载到switch(x){}的时候,括号里的答案都已经进内存了,所以备选答案可以是无序的,但是执行是有顺序的。先读取第一个case;
4.最后一个case中的break,即挨着结束符大括号的break,在书写的时候可以省略,因为switch语句,结束有两种,一:break语句结束,二,一直执行到switch语句的结束大括号,也为结束。
5.如果把其他break也省略了。。。例如:
public class SwitchDemo {
public static void main(String[] args) {
int x = 5;
switch (x) {
default:
System.out.println(“0”);
//break;
case 2:
System.out.println(“2”);
//break;
case 1:
System.out.println(“1”);
break;
case 3:
System.out.println(“3”);
break;
case 4:
System.out.println(“4”);
break;
}
}
}
输出的结果为 0 2 1 也就是说,当default输出后,就不在做判断,而是直执行的语句都执行完,直到碰到break或者执行到大括号才会跳出来
多个答案,对应同一个答案声明。例:
/*
* 给月份,对应出季节
* */
public class SwitchDemo {
public static void main(String[] args) {
int month = 3;
switch (month) {
case 3:
case 4:
case 5:
System.out.println(month+"月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month+"月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month+"月是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(month+"月是冬季");
break;
default:
System.out.println(month+"没有这个月份");
break;
}
}
}
输出结果为3月;