English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник 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

Конструкция switch Java

В этом курсе вы узнаете, как использовать switch-выражение в Java для управления потоком выполнения программы

В 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:
   // дефолтное выражение
}

Выражение switch-выражения оценивает expression или variable (выражение или переменную) и сравнивает его со значениями каждого case-выражения (может быть выражением).

Теперь, если значение совпадает с某个 меткой case, то будут выполнены все команды, соответствующие этой метке.

Например, если variable/expression равна value2. В этом случае будут выполнены все команды, соответствующие этому совпадению (команды case2).

Обратите внимание, что в каждом случае используется ключевое слово break. Ключевое слово break используется для завершения выполнения switch-выражения.

Это важно, так как без использования ключевого слова break все команды после case будут выполняться по порядку до конца switch-выражения.

Графический алгоритм switch-выражения

Графический алгоритм Java switch-выражения

Пример 1: Java switch-выражение

class Main {
    public static void main(String[] args) {
        int week = 4;
        String day;
        // switc̆ hуz̆dаchĭ po nedеli
        switch (week) {
            case 1:
                day = "Sunday";
                break;
            case 2:
                day = "Monday";
                break;
            case 3:
                day = "Tuesday";
                break;
            //匹̆chаtь значени́e nedеli
            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 для создания калькулятора. Он выполняет вычисления в зависимости от предоставленного пользователем оператора.