• 孙公瑾
    2019-12-16
    执行default语句之后,最后正确输出的语句要怎样写才不会被输出?
    System.out.println(srt);

    作者回复: 不是很明白,可以试试看break出来。

     1
    
  • 1cho糖糖
    2019-10-27
    测试过,default语句可以写在switch{}语句块的任何位置,从上到下按顺序执行,不管有没有case的命中都会执行,是switch语句默认执行的语句,不过dufault里的变量会受到前面的case命中后修改的值有影响。不过一般情况下case都会配合break使用

    作者回复: 对。其实更简单的说法是,只要匹配了,就会进去执行,一直到switch结束或者遇到break/return改变执行流程。

    default并非是无论是否匹配都会执行,而是没有任何能匹配上的情况下,default可以匹配任意条件。

    比如下面的switch语句,很别扭的把default放在类中间,输出就是3,default就不会执行。而如果case 3下面还有语句,那么还是会继续执行。

        int a = 3;
        switch (a){
          case 1:
            System.out.println("1");
          default:
            System.out.println("000");
          case 3:
            System.out.println("3");
        }

    如果
        int a = 999;
    那么输出就是
    000
    3

    
    
  • 蓝白条纹
    2019-10-23
    老师我这边测试,如果不加break,default也会被执行。并不像老师说的只要有条件符合了,default就不会被执行。
    另外还发现default也可以不写在最后一个case后面,插入在其他case中间也可以。
    请问是版本的差异吗?

    作者回复:
    还真没有试过default不写在最后。按照习惯最好还是写在最后。

    break那个疏忽了。建议按照习惯,每个case都break。

    
    
  • 海乔的小微燕
    2019-06-07
    我读过一篇文章,发现switch传递的参数可以是String类型的,这是新增加的功能。那么我如何向in.nextInt()一样从键盘输入一个字符串呢?这个方法试过了只能传递int类型的数据》》》请指教

    作者回复: 用next()试试看

    
    
我们在线,来聊聊吧