美文网首页
Java Switch语句贯穿问题

Java Switch语句贯穿问题

作者: 谢随安 | 来源:发表于2017-09-30 11:41 被阅读45次
public class test {
    public static void main(String[] args) {
        int a =5 ;
        switch (a){
            case 4:
                a++;
            case 5:
                a++;
            case 6:
                a++;
            case 7:
                a++;
            case 8:
                a++;
            default:
                System.out.println(a);
        }
    }
}

如果问运行上面代码的输出是什么,大家都知道程序会输出9。


可是如果是这样呢?

public class test {
    public static void main(String[] args) {
        int a =5 ;
        switch (a){
            case 6:
                a++;
            case 5:
                a++;
            case 4:
                a++;
            case 3:
                a++;
            default:
                System.out.println(a);
        }
    }
}

答案是8。


经过Debug调试发现是因为switch语句的case匹配语句只会匹配一次,当匹配成功后,会执行代码直到遇到 break 语句结束,如果写switch语句的时候没有加入break语句,则会发生贯穿问题,继续向下执行代码,直到switch代码块的最后一行(注意不是default)。
为了证明Switch不会执行完default代码块就结束,运行如下代码:

public class test {
    public static void main(String[] args) {
        int a =5 ;
        switch (a){
            case 4:
                a++;
            case 5:
                a++;
            case 6:
                a++;
            case 7:
                a++;
            case 8:
                a++;
            default:
                System.out.println(a);
            case 9:
                System.out.println(a);
        }
    }

那么case 9的代码还会不会执行呢?

答案是会的,运行该程序会输出两行9。

相关文章

  • Java Switch语句贯穿问题

    如果问运行上面代码的输出是什么,大家都知道程序会输出9。 可是如果是这样呢? 答案是8。 经过Debug调试发现是...

  • java基础,每天都应该复习

    1.Java语言基础(选择结构switch语句的格式及其解释)(掌握) A:switch语句的格式 switch(...

  • 条件判断

    Java 条件判断 在 Java 中有两种类型的条件判断语句,它们分别是: if 语句-switch 语句-if ...

  • 控制语句

    Java支持以下控制结构:条件控制语句:if,if - else,if - else if,switch循环语句:...

  • 关于switch语句中使用String类型的实现原理

    关于switch语句中使用String类型的实现原理 在Java 7 以后,switch语句可以用作String类...

  • Kotlin基础之 When表达式

    Kotlin中的When表达式就是java中的switch case语句 我们在java中这样写switch ...

  • Java中的流程控制语句——条件语句

    Java 常用的条件语句:if、 if...else、多重if、嵌套if、switch 条件语句——if 生活中,...

  • 。。。。

    条件语句2 知识点 switch语句 一、 switch语句 (一) 问题 1. 问题1 李四的年终工作评定, 如...

  • 2019-01-03 5

    条件语句2 知识点 switch语句 一、 switch语句 (一) 问题 1. 问题1 李四的年终工作评定, 如...

  • 04-js的语句

    js的语句 java的语句if判断switch循环for、while、do while js的语句if判断Tips...

网友评论

      本文标题:Java Switch语句贯穿问题

      本文链接:https://www.haomeiwen.com/subject/wsugextx.html