switch 语句由一个控制表达式和多个case标签组成。
switch 控制表达式支持的类型有byte、short、char、int、enum(java 5)、String(Java 7)。
switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
default在当前switch找不到匹配的case时执行。default并不是必须的。
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
1234567891011 | switch (表达式) { case 条件 1 : 语句 1 ; break ; case 条件 2 : 语句 2 ; break ; ... default : 语句; } |
1234567891011121314 | int i = 3 ; switch (i) { case 1 : System.out.PRintln( 1 ); break ; case 2 : System.out.println( 2 ); break ; case 3 : System.out.println( 3 ); break ; default : System.out.println( 0 ); } |
12345678910111213141516171819202122232425262728 | package net.xsoftlab.baike; public class TestSwitch { static enum E { A, B, C, D } public static void main(String args[]) { E e = E.B; switch (e) { case A: System.out.println( "A" ); break ; case B: System.out.println( "B" ); break ; case C: System.out.println( "C" ); break ; case D: System.out.println( "D" ); break ; default : System.out.println( 0 ); } } } |
1234567891011121314 | String str = "C" ; switch (str) { case "A" : System.out.println( "A" ); break ; case "B" : System.out.println( "B" ); break ; case "C" : System.out.println( "C" ); break ; default : System.out.println( 0 ); } |
break在switch中用于结束当前流程。
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
示例:
1234567891011 | int i = 2 ; switch (i) { case 1 : System.out.println( 1 ); case 2 : System.out.println( 2 ); case 3 : System.out.println( 3 ); default : System.out.println( 0 ); } |
输出结果:
123 | 2 3 0 |
实例:输出2015年指定月份的最大天数
12345678910111213141516171819202122232425 | int year = 2015 ; int month = 8 ; int day = 0 ; switch (month) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : day = 31 ; break ; case 2 : day = 28 ; break ; case 4 : case 6 : case 9 : case 11 : day = 30 ; break ; } System.out.println(day); |
default在当前switch找不到匹配的case时执行。default并不是必须的。
示例:
123456789 | int x = 0 ; switch (x) { case 1 : System.out.println( 1 ); case 2 : System.out.println( 2 ); default : System.out.println( "default" ); } |
输出结果:
1 | default |
新闻热点
疑难解答