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 | 230 |
实例:输出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 |
新闻热点
疑难解答