java中switch 没有break,和default 写在最前面!会发生什么!

今天复习了一下基础发现好多细节的东西都不知道打算把java基础在重新复习一遍。

一般在实际开发中case语句后面都会加上break 但是不加break会报错吗?

看一下代码:

第一种条件没有break

 int i=1;
        switch (i){
            case 1:
                System.out.println("case1");
            case 2:
                System.out.println("case2");
            case 3:
                System.out.println("case3");
            default:
                System.out.println("default");
        }

结论:发现如果case语句中没有break跳出循环的话后面的case将不做判断直接运行,而且default中的语句也会执行

第二种条件:符合条件case中有break

  int i = 1;
        switch (i) {
            case 1:
                System.out.println("case1");
                break;
            case 2:
                System.out.println("case2");
            case 3:
                System.out.println("case3");
            default:
                System.out.println("default");
        }

结论:会发现符合case的语句直接执行并且直接跳出switch循环default语句也不执行

第三种条件:符合条件case中没有break 但是下一个case中有

    int i = 1;
        switch (i) {
            case 1:
                System.out.println("case1");
            case 2:
                System.out.println("case2");
                break;
            case 3:
                System.out.println("case3");
            default:
                System.out.println("default");
        }

结论:符合case条件的语句中如果没有break的话则会继续向下执行,遇见break才会跳出 default不会执行!

第四种条件:当default语句在switch最前面!

     int i = 1;
        switch (i) {
            default:
                System.out.println("default");
            case 1:
                System.out.println("case1");
            case 2:
                System.out.println("case2");
                break;
            case 3:
                System.out.println("case3");
        }

结论:default语句也不会执行

第五种条件:default语句在最前面,case中没有break

  int i = 1;
        switch (i) {
            default:
                System.out.println("default");
            case 1:
                System.out.println("case1");
            case 2:
                System.out.println("case2");
            case 3:
                System.out.println("case3");

        }

大家会发现default中的语句没有像条件一 一样执行

结论:default并不是必须执行的

条件五:当没有符合条件的case 并且default语句在最前面;

 int i = 0;
        switch (i) {
            default:
                System.out.println("default");
            case 1:
                System.out.println("case1");
            case 2:
                System.out.println("case2");
            case 3:
                System.out.println("case3");
        }

顺序执行!

本次这几个条件我自己总结一下就是:

1.当没有符合条件的case则会执行default语句和default语句的位置无关。

2.当case中没有break的时候会自动给顺序执行直到遇见break;跳出循环否则顺序向下执行!

3.如果没有符合条件的case且default写在前面没有break则也会向下执行case的语句!直到遇见break!(建议default语句都写在最后面或者加上break!)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值