Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java switch语句

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

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

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

switch语句的语法为:

switch (variable/expression) {
case value1:
   //  case1 语句
   break;

case value2:
   // case2 语句
   break;

   .. .. ...
   .. .. ...

default:
   // default 语句
}

switch语句评估expression或variable(表达式或变量),并将其与每个case标签的值(可以是表达式)进行比较。

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

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

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

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

switch语句流程图

Java switch语句的流程图
Java switch语句的流程图

示例1:Java switch语句

class Main {
    public static void main(String[] args) {

        int week = 4;
        String day;

        // switch语句判断星期几
        switch (week) {
            case 1:
                day = "Sunday";
                break;
            case 2:
                day = "Monday";
                break;
            case 3:
                day = "Tuesday";
                break;

            //匹配星期的值
            case 4:
                day = "Wednesday";
                break;
            case 5:
                day = "Thursday";
                break;
            case 6:
                day = "Friday";
                break;
            case 7:
                day = "Saturday";
                break;
            default:
                day = "Invalid day";
                break;
        }
        System.out.println("这一天是 " + day);
    }
}

输出

这一天是 Wednesday

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

这里week的值是4。因此,它与case 4匹配。所以case 4里面的语句被执行了。

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

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

在浏览该程序之前,您最好已经了解Java scanner以接受用户的输入。

import java.util.Scanner;

class Main {
    public static void main(String[] args) {

        char operator;
        Double number1, number2, result;

        //创建一个Scanner类的对象
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入运算符 (选项: +, -, * 或 /): ");

        //要求用户输入运算符
        operator = scanner.next().charAt(0);
        System.out.print("分别输入数字1和数字2: ");

        //要求用户输入数字
        number1 = scanner.nextDouble();
        number2 = scanner.nextDouble();

        switch (operator) {

            //两个数字相加
            case '+':
                result = number1 + number2;
                System.out.print(number1 + "+" + number2 + " = " + result);
                break;

            //两个数字相减
            case '-':
                result = number1 - number2;
                System.out.print(number1 + "-" + number2 + " = " + result);
                break;

            //两个数字相乘
            case '*':
                result = number1 * number2;
                System.out.print(number1 + "*" + number2 + " = " + result);
                break;

            //两个数字相除
            case '/':
                result = number1 / number2;
                System.out.print(number1 + "/" + number2 + " = " + result);
                break;

            default:
                System.out.println("Invalid operator!");
                break;
        }
    }
}

输出

输入运算符 (选项: +, -, * 或 /):  *
分别输入数字1和数字2: 1.4
-5.3
1.4*-5.3 = -7.419999999999999

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