switch语句:

1、switch语句也是选择语句,也可以叫分支语句。

2、switch语句的语法格式


switch(值){
case 值1:
java语句;
java语句;…
break;
case 值2:
java语句;
java语句;…
break;
case 值3:
java语句;
java语句;…
break;
default:
java语句;
}

以上是一个完整的switch语句:
其中:break;语句不是必须的。default分支也不是必须的。

switch语句支持的只有哪些?
支持int类型以及String类型。
但一定要注意JDK的版本,JDK8之前不支持String类型,只支持int。
在JDK8之后,switch语句开始支持字符串String类型。

switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句当中,因为byte short char可以进行自动类型转换。

switch语句中”值”与”值1”、”值2”比较的时候会使用”==”进行比较。

3、switch语句的执行原理

  1. "值""值1"进行比较,如果相同,则执行该分支中的java语句,<br /> 然后遇到"break;"语句,switch语句就结束了。<br /> <br /> 如果"值""值1"不相等,会继续拿"值""值2"进行比较,如果相同,则执行该分支中的java语句,然后遇到break;语句,switch结束。<br /> <br /> 注意;如果分支执行了,但是分支最后没有"break;",此时会发生case穿透现象。<br /> <br /> 所有的case都没有匹配成功,那么最后default分支会执行。
  1. public class SwitchTest01{
  2. public static void main(String[] asge){
  3. // 分析这个程序是否能够编译通过?
  4. // switch只支持int和String类型。
  5. // 错误:不兼容的类型:从long转换到int可能会有损失
  6. /*
  7. long x = 100L;
  8. switch(x){
  9. }
  10. */
  11. //switch也支持字符串String类型
  12. //switch("abc"){}
  13. // 写一个完整的switch语句
  14. // 接收键盘输入,根据输入的数字来判断星期几。
  15. // 0 星期日,1 星期一,...
  16. java.util.Scanner s = new java.util.Scanner(System.in);
  17. System.out.print("请输入今天星期几:");
  18. int week = s.nextInt();
  19. switch(week){
  20. case 0:
  21. System.out.println("星期日");
  22. break;
  23. case 1:
  24. System.out.println("星期一");
  25. break;
  26. case 2:
  27. System.out.println("星期二");
  28. break;
  29. case 3:
  30. System.out.println("星期三");
  31. break;
  32. case 4:
  33. System.out.println("星期四");
  34. break;
  35. case 5:
  36. System.out.println("星期五");
  37. break;
  38. case 6:
  39. System.out.println("星期六");
  40. break;
  41. default:
  42. System.out.println("对不起您输入的数字无效");
  43. }
  44. }
  45. }