switch语句(用途和嫁接性比if语句弱,实际工作开发中使用场景没有if语句多):
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支(等值判断)
switch语句有如下规则:
switch(mingci){ //switch开关
case 1: //案例
System.out.println(“出任武林盟主”);
break; //跳出
case 2:
System.out.println(“出任武当掌门”);
break;
default: //默认值
System.out.println(“逐出师门”);
}
说明:
1、switch语句中的变量(mingci)可以是:byte、short、int或者char。从Java SE7开始,switch支持字符串类型了,同时case标签 必须为 字符串常量 或 字面量;
2、switch语句可以拥有多个case语句,每个case后面跟一个要比较的 值 和 冒号;
3、case语句中的 值的数据类型 必须与 变量的数据类型 相同,而且只能是 常量 或者 字面常量;
4、当变量的值与case语句的值相等时,(确定开始位置)那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句(if语句只执行布尔表达式为true的语句块,其他else...if即else直接跳出);
5、当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会执行下一条case语句,直到出现break语句;
6、switch语句可以包含一个default分支,该分支必须是switch语句的最后一个分支。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
if语句和switch语句的区别:
相同点:都是用来处理 多分支条件 的结构
不同点:
- if语句的执行条件是 布尔表达式,也就是说只要结果为boolean就可以;switch语句接受byte,short,int和char,后来才支持字符串,且只能处理等值条件的情况(if适合变量处于某个连续区间的情况);
- if...else系列语句仅且运行由上而下的一个true条件语句块,执行一条后就跳出;switch语句中case是确定开始执行的位置,直到遇到break或者default才跳出;
- if...else语句系列往往对布尔表达式顺序有要求;switch对顺序没有严苛要求