Switch 用法:无论default放哪里,switch语句首先读的是第一个case语句;
关于break:理论上每个case的break是不可以省略 ;但靠近大括号的可以省略。
class SwitchDemo { public static void main(String[] args) { /* switch(表达式) { case 取值1: 执行语句; break; case 取值2: 执行语句; break; ...... default: 执行语句 break; } */ int x=3; switch (x)//byte,short,int,char(只有这四种能选择) { case 4: System.out.println("a"); break; case 1: System.out.println("b"); break; case 3: System.out.println("c"); break; default: System.out.println("d"); break; } int a=5,b=2; char opr='-'; switch (opr) { case '+' : System.out.println(a+b); break; case '-' : System.out.println(a-b); break; case '*' : System.out.println(a*b); break; case '/' : System.out.println(a/b); break; default: System.out.println("无法运算"); } } }
练习:
class SwitchTest { public static void main(String[] args) { /* 用户输入的数据对应出星期 */ int week=1; switch (week) { case 1 : System.out.println(week+"是星期一"); break; case 2 : System.out.println(week+"是星期二"); break; case 3 : System.out.println(week+"是星期三"); break; case 4 : System.out.println(week+"是星期四"); break; case 5 : System.out.println(week+"是星期五"); break; case 6 : System.out.println(week+"是星期六"); break; case 7 : System.out.println(week+"是星期日"); break; default: System.out.println(week+"没有对应的星期"); break; } int month=11; switch (month) { case 3: case 4: case 5: System.out.println(month+"对应的是春季"); break; case 6: case 7: case 8: System.out.println(month+"对应的是夏季"); break; case 9: case 10: case 11: System.out.println(month+"对应的是秋季"); break; case 1: case 2: case 12: System.out.println(month+"对应的是冬季"); break; default: System.out.println(month+"没有对应的季节"); } } }
switch 和if的区别:
If:
1:对具体的值进行判断;
2:对区间的判断;
3:对运算结果是boolean类型的表达式进行判断;
switch:
1、对具体值进行判断;
2、值的个数通常是固定的;
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案加载进内内存。
效率相对高一点。