选择语句-switch

switch语句格式

  1. switch(表达式) {
  2. case 常量值1:
  3. 语句体1;
  4. break;
  5. case 常量值2:
  6. 语句体2;
  7. break;
  8. ...
  9. default:
  10. 语句体n;
  11. break;
  12. }

首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
image.png

  1. public class Test {
  2. public static void main(String[] args) {
  3. int day = 7;
  4. switch (day) {
  5. case 1:
  6. System.out.println("星期一");
  7. break;
  8. case 2:
  9. System.out.println("星期二");
  10. break;
  11. case 3:
  12. System.out.println("星期三");
  13. break;
  14. case 4:
  15. System.out.println("星期四");
  16. break;
  17. case 5:
  18. System.out.println("星期五");
  19. break;
  20. case 6:
  21. System.out.println("星期六");
  22. break;
  23. case 7:
  24. System.out.println("星期日");
  25. break;
  26. default:
  27. System.out.println("error");
  28. break;
  29. }
  30. }
  31. }

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。

  1. public class Test {
  2. public static void main(String[] args) {
  3. int day = 1;
  4. switch (day) {
  5. case 1:
  6. System.out.println("星期一");
  7. case 2:
  8. System.out.println("星期二");
  9. case 3:
  10. System.out.println("星期三");
  11. case 4:
  12. System.out.println("星期四");
  13. case 5:
  14. System.out.println("星期五");
  15. case 6:
  16. System.out.println("星期六");
  17. case 7:
  18. System.out.println("星期日");
  19. default:
  20. System.out.println("error");
  21. }
  22. }
  23. }