我是靠谱客的博主 甜美白羊,最近开发中收集的这篇文章主要介绍有趣的switch-case穿透,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是case穿透

平时我们写 switch语句时,会搭配case,break,我们有时候会忘记写break,示例:

int choice = 1;
switch (choice) {
            case 1:        
                System.out.println("春天");
            case 2:
                System.out.println("夏天");
                break;
            default:
                System.out.println("hahaha");
        }

结果是什么呢?让我们输出一下

春天
夏天

下面我们来试一试利用case穿透来判断季节

  int month= 1;
        switch (month) {
            case 1:
            case 2:
            case 3:
                System.out.println("春天");
                break;
            case 4:
            case 5:
            case 6:
                System.out.println("夏天");
                break;
            default:
                System.out.println("hahaha");

        }
"C:Program FilesJavajdk1.8.0_144binjava.exe" "-javaagent:D:IntelliJ IDEAIntelliJ IDEA 2018.2.4libidea_rt.jar=63289:D:IntelliJ IDEAIntelliJ IDEA 2018.2.4bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_144jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_144jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_144jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_144jrelibplugin.jar;C:Program FilesJavajdk1.8.0_144jrelibresources.jar;C:Program FilesJavajdk1.8.0_144jrelibrt.jar;D:IDEA2018vue-firstoutproductionvue-first" Test
春天

Process finished with exit code 0

完全没有问题,哈哈~~~~

如果没有一个break,会发生什么呢

public class Test {
    public static void main(String[] args) {
        int month= 4;
        switch (month) {
            case 1:
            case 2:
            case 3:
                System.out.println("春天");
                //break;
            case 4:
            case 5:
            case 6:
                System.out.println("夏天");
                //break;
            default:
                System.out.println("hahaha");
        }
    }
}
"C:Program FilesJavajdk1.8.0_144binjava.exe" "-javaagent:D:IntelliJ IDEAIntelliJ IDEA 2018.2.4libidea_rt.jar=63329:D:IntelliJ IDEAIntelliJ IDEA 2018.2.4bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_144jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_144jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_144jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_144jrelibplugin.jar;C:Program FilesJavajdk1.8.0_144jrelibresources.jar;C:Program FilesJavajdk1.8.0_144jrelibrt.jar;D:IDEA2018vue-firstoutproductionvue-first" Test
夏天
hahaha

Process finished with exit code 0

这就是case穿透(去掉break),会自动进行下面的第二个case,直到遇到break,如果没有break,会进行到default,没有default也会结束

最后

以上就是甜美白羊为你收集整理的有趣的switch-case穿透的全部内容,希望文章能够帮你解决有趣的switch-case穿透所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部