分支结构(二)

switch case分支结构

switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;

default:
语句体n+1;
break;
}

  • 执行流程
    首先计算出表达式的值
    其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束。
    最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后结束程序。
    代码演示
public class DemoSwitch {
	public static void main(String[] args) {
		int num = 10;
		
		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("数据不合理");
				break; // 最后一个break语句可以省略,但是强烈推荐不要省略
		}
	}
}

switch语句中,表达式的数据类型,可以是byte、short、int、char、enum(枚举),JDK7后可以接收String。

case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

代码演示

public class Demo08SwitchNotice {
	public static void main(String[] args) {
		int num = 2;
		switch (num) {
			case 1:
				System.out.println("你好");
				break;
			case 2:
				System.out.println("我好");
				// break;
			case 3:
				System.out.println("大家好");
				break;
			default:
				System.out.println("他好,我也好。");
				break;
		} // switch
	}
}

switch - case使用注意事项

1.在switch - case结构中,有且只能执行case,或者default之后的语句。如果存在在case和default之外的语句,是无法执行的,对于Java而言是无效代码。
2. 多个case后面的数值不可以重复。
3. switch后面小括号当中只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举
4. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
“匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
5.在switch - case结构中,default可以省略,代码编译不会受到影响,没有语法错误。但是失去switch - case自带的一种异常情况处理方式。
AJGG阿里巴巴Java开发规范中,是不推荐省略default。

总结
1.switch case结构和 if  else if 结构类似,两者是可以互通的。
2.if else  if结构中可以处理范围性数据,处理的数据区间更广泛
3.switch case处理数据明确性更强,处理针对性选择比较合适。
发布了7 篇原创文章 · 获赞 0 · 访问量 102

猜你喜欢

转载自blog.csdn.net/qq_43634768/article/details/105588133