本文为个人理解如果哪里有不对的地方请大家给出宝贵意见谢谢:
分为三种情况分析:
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下的语句