原文: https://www.programiz.com/java-programming/switch-statement

在本教程中,您将学习如何使用 Java 中的switch语句来控制程序执行的流程

在 Java 中,我们使用if..else..if梯形图在多个块中执行一个代码块。 但是,if...else...if梯子的语法太长。

因此,我们可以使用switch语句代替长的if...else...if梯子。switch语句的使用使我们的代码更具可读性。

switch语句的语法为:

  1. switch (variable/expression) {
  2. case value1:
  3. // statements of case1
  4. break;
  5. case value2:
  6. // statements of case2
  7. break;
  8. .. .. ...
  9. .. .. ...
  10. default:
  11. // default statements
  12. }

switch语句求值expression(主要是variable),并将其与每个case标签的值(可以是表达式)进行比较。

现在,如果值与某个case标签匹配,则将执行所有与case标签匹配的语句。

例如,如果variable/expression等于value2。 在这种情况下,将执行与该case相匹配的所有语句(case2的语句)。

注意,在每种情况下都使用break语句。break语句用于终止switch语句的执行。

这很重要,因为如果不使用break,则匹配大小写之后的所有语句将按顺序执行,直到switch语句的结尾。


switch语句流程图

Java `switch`语句 - 图1

Java switch语句的流程图

注意:Java switch语句仅适用于:


示例 1:Java switch语句

  1. class Main {
  2. public static void main(String[] args) {
  3. int week = 4;
  4. String day;
  5. // switch statement to check day
  6. switch (week) {
  7. case 1:
  8. day = "Sunday";
  9. break;
  10. case 2:
  11. day = "Monday";
  12. break;
  13. case 3:
  14. day = "Tuesday";
  15. break;
  16. // match the value of week
  17. case 4:
  18. day = "Wednesday";
  19. break;
  20. case 5:
  21. day = "Thursday";
  22. break;
  23. case 6:
  24. day = "Friday";
  25. break;
  26. case 7:
  27. day = "Saturday";
  28. break;
  29. default:
  30. day = "Invalid day";
  31. break;
  32. }
  33. System.out.println("The day is " + day);
  34. }
  35. }

输出

  1. The day is Wednesday

在上面的示例中,我们使用switch语句找出星期几。 在这里,我们有一个变量week,它保存一个整数值。 将该值与switch块内的每个case进行比较。

这里,week的值是4。 因此,它与case 4相匹配。 因此,case 4内部的语句将被执行。


示例 2:使用switch语句制作计算器

下面的程序从用户那里接收三个输入:一个操作符2 个数字。 根据用户提供的运算符,对这些数字进行计算。 然后结果显示在屏幕上。

在执行程序之前,请确保您了解 Java 扫描器,以接受用户的输入。

  1. import java.util.Scanner;
  2. class Main {
  3. public static void main(String[] args) {
  4. char operator;
  5. Double number1, number2, result;
  6. // create an object of Scanner class
  7. Scanner scanner = new Scanner(System.in);
  8. System.out.print("Enter operator (either +, -, * or /): ");
  9. // ask user to enter operator
  10. operator = scanner.next().charAt(0);
  11. System.out.print("Enter number1 and number2 respectively: ");
  12. // ask user to enter numbers
  13. number1 = scanner.nextDouble();
  14. number2 = scanner.nextDouble();
  15. switch (operator) {
  16. // performs addition between numbers
  17. case '+':
  18. result = number1 + number2;
  19. System.out.print(number1 + "+" + number2 + " = " + result);
  20. break;
  21. // performs subtraction between numbers
  22. case '-':
  23. result = number1 - number2;
  24. System.out.print(number1 + "-" + number2 + " = " + result);
  25. break;
  26. // performs multiplication between numbers
  27. case '*':
  28. result = number1 * number2;
  29. System.out.print(number1 + "*" + number2 + " = " + result);
  30. break;
  31. // performs division between numbers
  32. case '/':
  33. result = number1 / number2;
  34. System.out.print(number1 + "/" + number2 + " = " + result);
  35. break;
  36. default:
  37. System.out.println("Invalid operator!");
  38. break;
  39. }
  40. }
  41. }

输出

  1. Enter operator (either +, -, * or /): *
  2. Enter number1 and number2 respectively: 1.4
  3. -5.3
  4. 1.4*-5.3 = -7.419999999999999

在上面的示例中,我们使用switch语句创建了一个计算器。 它根据用户提供的运算符执行计算。