/*
程序流控制语句 分支语句之二 switch case
switch结构
switch(表达式) //表达式不是boolean型
case 常量1:
语句1;
//break
case 常量2:
语句2;
//break
case 常量3:
语句3;
//break
.
.
.
case 常量N:
语句N;
//break
deafault:
语句;
//break
说明:
1,根据switch表达式中的值,一词匹配各个case中的常量,一旦匹配成功则进入
相应的case结构中,调用其执行语句,当调用完成后,则继续向下执行其他case
结构中的执行语句,直到遇到break关键字或者switch-case结构末尾为止。
2,break 关键字可以使用在switch-case结构中,表示一旦遇到此关键字就会跳出switch-case结构
3,switch表达式的类型规定只能有六种:byte,short,char,int,枚举,string。
4,case之后只能声明常量,不能声明范围。
5,break关键字根据需要加,大部分情况需要
6,default:类似if-else结构中的else。default结构是可选项。
而且位置灵活,不一定在末尾。实际往往在末尾,
7,如果switch-case结构中多个case 的执行语句相同,可以考虑合并。见例题二
原理,没有执行语句没有break会一直执行到有break的地方,因为执行语句相同,所以输出一样
8,在使用分支结构式时,如何选择用if还是switch。凡是能用switch执行的都能用if执行,反之不成立。
在两者都能用且switch中case 的情况不多时,优先选择switch结构,因为switch执行效率稍高。
*/
import java.util.Scanner;
class SwitchCaseTest {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = 2;
switch(num){
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
case 3:
System.out.println("three");
break;//遇到break停止执行
case 4:
System.out.println("four");
default:
System.out.println("null");//输出two three
}
num = 1;
switch(num){
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
default:
System.out.println("null");//default位置灵活,但一般不这么写
case 3:
System.out.println("three");
break;
case 4:
System.out.println("four");//输出 one two null three
}
num = 5;
switch(num){
default:
System.out.println("null");//default位置灵活,但一般不这么写
case 0:
System.out.println("zero