我是靠谱客的博主 淡然母鸡,最近开发中收集的这篇文章主要介绍java switch要记得break(一个小坑~),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天遇到的BUG

= =

switch忘记break了= =

package julyStudy;

/**
 * @Author : pmdream
 * @Description : SwitchUseCase
 * @Date : 2019/7/17
 */
public class SwitchUseCase {

    public static void main(String[] args) {

        int a = 1;
        int b = 1;
        switch (a) {
            case 1 :
                b++;
                System.out.println(b);
            case 2 :
                b++;
                System.out.println(b);
            case 3 :
                b++;
                System.out.println(b);
            case 4 :
                b++;
                System.out.println(b);
            default:
                break;
        }
    }
}

结果就是:

2
3
4
5

如果第一步就是default呢?

 

package julyStudy;

/**
 * @Author : pmdream
 * @Description : SwitchUseCase
 * @Date : 2019/7/17
 */
public class SwitchUseCase {

    public static void main(String[] args) {

        int a = 1;
        int b = 1;
        switch (a) {
            default:
                break;
            case 1 :
                b++;
                System.out.println(b);
            case 2 :
                b++;
                System.out.println(b);
            case 3 :
                b++;
                System.out.println(b);
            case 4 :
                b++;
                System.out.println(b);
        }
    }
}

结果依然是:

2
3
4
5

 所以defaul其实并没有执行。

switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}


default就是如果没有符合的case就执行它,default并不是必须的.

package julyStudy;

/**
 * @Author : pmdream
 * @Description : SwitchUseCase
 * @Date : 2019/7/17
 */
public class SwitchUseCase {

    public static void main(String[] args) {

        int a = 111;
        int b = 1;
        switch (a) {
            default:
                a++;
                System.out.println(a);
                break;
            case 1 :
                b++;
                System.out.println(b);
                break;
            case 2 :
                b++;
                System.out.println(b);
                break;
            case 3 :
                b++;
                System.out.println(b);
                break;
            case 4 :
                b++;
                System.out.println(b);
                break;
        }
    }
}

总结:

一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句

package julyStudy;

/**
 * @Author : pmdream
 * @Description : SwitchUseCase
 * @Date : 2019/7/17
 */
public class SwitchUseCase {

    public static void main(String[] args) {

        int a = 111;
        int b = 1;
        switch (a) {
            default:
                break;
            case 1 :
                b++;
                System.out.println(b);
            case 2 :
                b++;
                System.out.println(b);
            case 3 :
                b++;
                System.out.println(b);
            case 4 :
                b++;
                System.out.println(b);
        }
    }
}

所以上述执行结果就是空的。

 

所以一旦case条件对了,他就要找到break;而不会关心后面的case条件了~

如果所有条件都没有合适的,那么它一段代码都不会执行

最后

以上就是淡然母鸡为你收集整理的java switch要记得break(一个小坑~)的全部内容,希望文章能够帮你解决java switch要记得break(一个小坑~)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部