您的位置:

Java switch语句的用法

在Java编程中,switch语句是一种非常常见的流程控制语句,通常用于对于一个变量的不同取值进行不同的处理。

一、基础语法

在最基础的使用情况下,Java switch语句的基础语法如下:

switch (expression) {
    case value1:
        // statement(s) to be executed if expression = value1;
        break;
    case value2:
        // statement(s) to be executed if expression = value2;
        break;
    case value3:
        // statement(s) to be executed if expression = value3;
        break;
    ...
    default:
        // statement(s) to be executed if none of the above is true;
}

其中,expression必须是一个整型或字符型的变量或表达式,用来表示被比较的值。而value1、value2、value3等表示不同的取值,并且每个case语句中的语句可以是任何Java语句,包括表达式、变量、方法调用等等。而default语句则为可选的,表示当expression的值不匹配任何一个case时执行的语句。

下面是一个示例代码,使用switch语句实现了一个非常简单的计算器功能:

import java.util.Scanner;

public class SwitchDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入两个数和运算符:");
        double num1 = scanner.nextDouble();
        double num2 = scanner.nextDouble();
        String operator = scanner.next();
        double result = 0;
        switch (operator) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                result = num1 / num2;
                break;
            default:
                System.out.println("请输入正确的运算符:+、-、*、/");
                break;
        }
        System.out.println("计算结果为:" + result);
    }
}

在这个示例代码中,我们通过switch语句的不同case实现了对于不同运算符的判断,从而进行了不同的计算。

二、特殊用法

1、省略break语句

在Java switch语句中,每个case后面都需要添加break语句,用来表示执行完当前case后直接跳出整个switch语句。但是,在某些情况下我们可能会想要连续执行多个case中的语句,这时就可以省略break语句。

例如,下面的示例代码中我们省略了break语句,从而实现了从weekday的值开始执行后续所有case中的语句,并且输出的结果为“今天是周几”:

public class SwitchDemo {
    public static void main(String[] args) {
        int weekday = 3;
        String dayType;
        switch (weekday) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                dayType = "工作日";
                break;
            case 6:
            case 7:
                dayType = "休息日";
                break;
            default:
                dayType = "错误";
                break;
        }
        System.out.println("今天是" + dayType);
    }
}

2、数据类型能否被switch语句使用

在Java switch语句中,只有整型(byte、short、int、long)和字符型(char)的变量或表达式才可以作为expression,而其它任何类型的变量或表达式都不允许。

3、Java 12中的switch语句新特性

在Java 12中,switch语句引入了一个新特性,即switch表达式。使用时可以省略expression和case标签,可以直接使用表达式并返回一个值。示例代码如下:

public class SwitchDemo {
    public static void main(String[] args) {
        String result = switch (getValue()) {
            case "A", "B" -> "Good";
            case "C", "D" -> "Fair";
            case "E" -> "Poor";
            default -> "Fail";
        };
        System.out.println(result);
    }

    public static String getValue() {
        return "A";
    }
}

在这个示例代码中,我们使用了新的switch表达式,省略了expression和case标签,直接对于getValue()方法的返回值进行判断,并返回相应的字符串。

三、总结

在Java编程中,switch语句是一种非常常见的流程控制语句,通常用于对于一个变量的不同取值进行不同的处理。通过本文的介绍,我们已经了解了Java switch语句的基本语法和特殊用法,相信可以在实际编程中灵活运用。