Java基础语法-条件结构-switch条件结构

1.什么是switch条件结构

switch 条件结构的使用是搭配 case 关键字来使用的。
表示 判断一个变量与一系列值中的某个值是否相等,其中每个值称为一个分支。

2.switch的语法结构

switch(expression){
	case value1:
	     // 要执行的逻辑处理
	     break; // break 是可选的关键字
	case value2:
	     // 要执行的逻辑处理
	     break; // break 是可选的关键字
	case value3:
		// 要执行的逻辑处理
		break; // break 是可选的关键字
	......
	default: // 可选的分支 : 不一定是放在最后的,放在中间也可以正常执行
		// 要执行的逻辑处理
		break; // break 是可选的关键字
}

switch中的expression的合法值 :
byte 、short、 int、 char
jdk1.7 之后,支持了 String 类型,且case的值必须是字符串常量。

3.正常使用的例子

	 	String word = "Hello";
        switch (word){
            case "hei":
                int i = 10/5;
                System.out.println("计算得到的i = "+i);
                System.out.println("you say hei");
                break;
            case "Hello":
                int j = 20/5;
                System.out.println("计算得到的 j = "+j);
                System.out.println("you say Hello");
                break;
            case "what":
                int k = 30/5;
                System.out.println("计算得到的 k = "+k);
                System.out.println("you say what");
                break;
            default:
                System.out.println("这是默认输出的值!");
                break;
        }
// 执行结果是:
计算得到的 j = 4
you say Hello

4.缺失break后的 case穿透现象

当某个case分支中没有写 break时,在执行了该case分支后,会继续执行下一个case分支中的语句,直到遇到break 或 所有分支都执行完成才会结束。这个现象就叫做 case穿透。因此,在使用switch分支语句时,除非特殊设计,在case分支中一定要写上 break。

  		String word = "Hello";
        switch (word){
            case "hei":
                int i = 10/5;
                System.out.println("计算得到的i = "+i);
                System.out.println("you say hei");
                break;
            case "Hello":
                int j = 20/5;
                System.out.println("计算得到的 j = "+j);
                System.out.println("you say Hello");
                //break;
            case "what":
                int k = 30/5;
                System.out.println("计算得到的 k = "+k);
                System.out.println("you say what");
                //break;
            default:
                System.out.println("这是默认输出的值!");
                //break;
        }
// 执行结果
计算得到的 j = 4
you say Hello
计算得到的 k = 6
you say what
这是默认输出的值!

// 结果分析 : 由于 Hello 匹配成功功了 第二个case分支,因此执行了第二个case分支中的逻辑,
			 而由于没有break语句,导致了case穿透现象,
			 到了第三个case分支,执行了第三个case分支中的逻辑,也没有break,
			 因此到了 default中,程序一直执行完毕了。

5.default放在中间

default 关键字也是可以放在中间的

 String word = "Hello";
        switch (word){
            case "hei":
                int i = 10/5;
                System.out.println("计算得到的i = "+i);
                System.out.println("you say hei");
                break;

            case "Hello":
                int j = 20/5;
                System.out.println("计算得到的 j = "+j);
                System.out.println("you say Hello");
                //break;
            default:
                System.out.println("这是默认输出的值!");
                //break;
            case "what":
                int k = 30/5;
                System.out.println("计算得到的 k = "+k);
                System.out.println("you say what");
                //break;

        }
// 执行结果
计算得到的 j = 4
you say Hello
这是默认输出的值! 【这一句就是default中输出的内容,且default中没有break,因此同样出现了穿透现象】
计算得到的 k = 6
you say what

6.完成

Congratulations!
You are one step closer to success!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值