switch case default 语句的的使用以及注意事项

首先我们来看一下它们基本的定义
switch(表达式)
{
case 取值1:
输出语句;
break;
。。。。
default:
输出语句;
break;
}
上面的运行流程是这样的,
1.从switch语句开始,看switch后面括号内的表达式,然后进行下一步。
2.找到case里面那个取值与表达式满足,就执行哪一个case,然后break跳出程序。如果
所有的case都不满足表达式,那么就运行下一步。
3.当case 都不满足时,执行default语句,输出结果。
实例如下:
class Demo4 
{
public static void main(String[] args) 
{
int x=3,k=2;
default:
System.out.println(k+=4);
break;
switch (x)
{
case 1:
System.out.println(k+=1);
break;
case 2:
System.out.println(k+=2);
break;
case 3:
System.out.println(k+=3);
break;


}
}
}
输出的结果为5;
思考:
1.若将default的位置换到case 1 上面那么结果是不是还是5呢?
答案是肯定的,无论default的位置在哪里,输出的结果都没有问题,都会与default在最下面一样。


2.若是case 3 内的break;忘记加了结果会怎么样呢?
则输出结果为5和9;这是因为缺少break导致case穿透,继续执行了case 3 后面的default;如果现在把
default挪到case 1 上面则输出结果就会是5。


3.如果把所有的break都去掉,则输出结果和default的位置会输出什么不同的结果
输出结果为5和9;把default放在其他位置结果还是5;


4.如果把x的值改为5没有break则造成的结果是什么?
class Demo4 
{
public static void main(String[] args) 
{
int x=5,k=2;
switch (x)
{
case 1:
System.out.println(k+=1);
case 2:
System.out.println(k+=2);
case 3:
System.out.println(k+=3);
default:
System.out.println(k+=4);
}
}
}
default在最下面则结果为6,当default在case 1 上面时则输出结果为6 7 9和12,造成这种结果的原因是
case穿透,即当读完default的时候,没有跳出程序,继续读取case 1 然后 case 2 ,case 3 。若把default
放在case 1 和case 2 之间,则输出结果为6 8和11 ,故总结为:若switch中所有的case与表达式不匹配,读
default后,若都没有break结束,则default在哪里他前面的case都会被它吃掉,不会读取,只能读取default以及
它之后的case。
  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值