多条件分支语句

语法

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

switch表达式

JDK 1.5以前switch (expr1)中,expr1是一个整数表达式。
因此传递给switch和case语句的参数可以是byte 、short、int或者char
Long、String都不能作用于Switch
JDK 1.5开始支持enum(枚举)
JDK 1.7后开始支持String

  1. public class Demo{
  2. public static void main(String[] args){
  3. System.out.println("请输入今天是星期几");
  4. Scanner input = new Scanner(System.in);
  5. int day = input.nextInt();
  6. switch(day){
  7. case 1
  8. System.out.println("周一");
  9. break;
  10. case 2;
  11. System.out.println("周二");
  12. break;
  13. case 3;
  14. System.out.println("周三");
  15. break;
  16. case 4;
  17. System.out.println("周四");
  18. break;
  19. case 5;
  20. System.out.println("周五");
  21. break;
  22. default:
  23. System.out.println("周末");
  24. break;
  25. }
  26. }
  27. }

优缺点

与if-else比较,switch-case的优点在于

  • 可以利用switch的开关功能来实现批处理
  • 增加了代码的可读性
  • 使代码更容易编写
  • 性能更高
    • 少了条件逻辑判断

其缺点是

  • 不能实现嵌套判断

批处理

  1. public class Demo{
  2. public static void main(String[] args){
  3. System.out.println("请输入今天是星期几");
  4. Scanner input = new Scanner(System.in);
  5. int day = input.nextInt();
  6. switch(day){
  7. case 1
  8. case 2;
  9. case 3;
  10. case 4;
  11. case 5;
  12. System.out.println("工作日");
  13. break;
  14. default:
  15. System.out.println("周末");
  16. break;
  17. }
  18. }
  19. }