/*关于switch语句:

1、switch语句也属于选择结构,也属于分支语句

2、switch语句的语法结构

一个完整的switch语句应该这样编写:

switch(int或String类型的字面值或变量){

case int或String类型的字面值或变量:

java语句;

...

break;

case int或String类型的字面值或变量:

java语句;

...
break;
default :
java语句;
...
};

3、switch语句执行原理:

switch后面小括号当中的"数据"和case后面的"数据",进行一一匹配,匹配成功的分支执行。

按照从上到下的顺序依次匹配。

4、匹配成功的分支执行,分支当中最后有break语句,整个switch语句终止。

5、匹配成功的分支执行,分支当中最后没有break语句的话,直接进入下一个分支执行(不进行匹配)。

这种现象被称为case穿透现象。【提供break;语句可以避免穿透】

6、所有分支如果都没有匹配成功,如果有default语句的话,会执行default分支当中的语句。

7、switch后面和case后面只能是int或String类型的数据,不能探测其它类型!

*当然,byte、short、char也可以直接写到switch和case后面,因为他们可以进行自动类型转换。

byte、short、char可以自动转换为int类型。

*JDK6版本的话,switch和case后面只能探测int类型。

*JDK7以后版本包括JDK7版本,引入新特性,switch和case后面可以探测int或String类型的数据。

8、case可以合并:

int i = 10;
switch(i){
case 1: case 2: case 3: case 10:

java语句;

...

break;

default:

java语句;

}*/
public classSwitch01{public static voidmain(String[] agrs){/*类型错误
long a = 100L;
int b = a;*/
//和上面的报错原因相同//long x = 100L;//switch(x){}//解决编译错误
long x = 100L;switch((int)x){};byte b = 10;switch(b){};short s = 20;switch(s){};char c = 'A';switch(c){};char cc = 97;switch(cc){};//switch(true){}; 编译错误 不兼容的类型 无法转换为int
String username= "张三";switch(username){};/*较完整的switch语句*/
//接收用户的输入://输入1:星期一//输入2:星期二//...//输入7:星期日
java.util.Scanner o= newjava.util.Scanner(System.in);
System.out.print("请输入数字1-7:");int num =o.nextInt();switch(num){case 1:
System.out.println("星期一");break;case 2:
System.out.println("星期二");break;case 3:
System.out.println("星期三");break;case 4:
System.out.println("星期四");break;case 5:
System.out.println("星期五");break;case 6:
System.out.println("星期六");break;case 7:
System.out.println("星期日");break;default:
System.out.println("您输入的啥都不是");
}
System.out.println("======================");//case穿透
switch(num){case 1:
System.out.println("星期一");//break; 输入1、2都会穿透到3的分支
case 2:
System.out.println("星期二");//break; 输入1、2都会穿透到3的分支
case 3:
System.out.println("星期三");break;case 4:
System.out.println("星期四");break;case 5:
System.out.println("星期五");break;case 6:
System.out.println("星期六");break;case 7:
System.out.println("星期日");break;default:
System.out.println("您输入的啥都不是");
};
System.out.println("======================");//case合并
switch(num){case 1: case 2: case 3: case 4: case 5:
System.out.println("工作日");break;case 6: case 7:
System.out.println("休息日");break;default:
System.out.println("您输入的啥都不是");
};
}
}