本文为个人理解如果哪里有不对的地方请大家给出宝贵意见谢谢:

分为三种情况分析:

1.当没有break时,default 在第一位的情况  

例如:

switch (i) {     
             default:     
                  System.out.println("默认");    
             case 1:     
                  System.out.println("1");     
             case 2:     
                     System.out.println("2");   
             case 3:     
                  System.out.println("3");     
          }

当给定义i=1时,输出的结果为: 当结果为1时输出结果为 1,2,3 

当给定义i=2时,输出的结果为: 当结果为1时输出结果为 2,3

当给定义i=3时,输出的结果为: 当结果为1时输出结果为 3

当给定义i=4时,输出的结果为: 当结果为1时输出结果为 默认,1,2,3

总结:当i匹配到的时候它会走到匹配的位置,而且还会继续运行之后的代码,之后最后位置,当匹配不到是,他会都输出一遍

2.当没有break时,default 在中间时的情况  

例如:

switch (i) {        
             case 1:     
                  System.out.println("1");              default:     
                  System.out.println("默认"); 
             case 2:     
                     System.out.println("2");   
             case 3:     
                  System.out.println("3");     
          }

当给定义i=1时,输出的结果为: 当结果为1时输出结果为 1,默认,2,3 

当给定义i=2时,输出的结果为: 当结果为1时输出结果为 2,3

当给定义i=3时,输出的结果为: 当结果为1时输出结果为 3

当给定义i=4时,输出的结果为: 当结果为1时输出结果为  默认,,2,3


总结:当i匹配到的时候它会走到匹配的位置,而且还会继续运行之后的代码,之后最后位置,当匹配不到是,他会从default起到以下都输出一遍

3.当没有break时,default 在最下面时的情况  

例如:

switch (i) {        
             case 1:     
                  System.out.println("1");  
             case 2:     
                     System.out.println("2");   
             case 3:     
                  System.out.println("3");             default:     
                  System.out.println("默认");   
          }

当给定义i=1时,输出的结果为: 当结果为1时输出结果为 1,2,3,默认 

当给定义i=2时,输出的结果为: 当结果为1时输出结果为 2,3,默认 

当给定义i=3时,输出的结果为: 当结果为1时输出结果为 3,默认

当给定义i=4时,输出的结果为: 当结果为1时输出结果为  默认


总结:当i匹配到的时候它会走到匹配的位置,而且还会继续运行之后的代码,之后最后位置,当匹配不到是,他只会输出default下的语句