您的位置:

Java中switch用法

一、switch语句基本用法

switch语句用于多分支选择结构,根据不同的情况执行不同的代码块。switch语句的基本语法如下:

    switch(表达式) {
        case 常量1 : 语句1; break;
        case 常量2 : 语句2; break;
        case 常量3 : 语句3; break;
        default: 默认语句;
    }

其中,case后面跟的是常量或枚举值,表达式和常量值的数据类型必须一致。default为可选项,如果所有的case都不匹配,则执行default中的代码块。

以下是一个简单的例子,通过switch语句判断输入的数字是1、2、3三个数字中的哪一个:

    import java.util.Scanner;
    
    public class SwitchDemo {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("请输入数字(1-3):");
            int num = input.nextInt();
            
            switch(num) {
                case 1 : 
                    System.out.println("您输入的是1"); 
                    break;
                case 2 : 
                    System.out.println("您输入的是2"); 
                    break;
                case 3 : 
                    System.out.println("您输入的是3"); 
                    break;
                default:
                    System.out.println("输入错误!");
            }
        }
    }

二、switch语句的特性

switch语句与if语句不同的是,switch语句只能用于判断常量或枚举类型,而不能用于布尔类型或其他数据类型。此外,switch语句有以下特性:

  • switch语句可通过break语句跳出多重嵌套的switch语句。
  • case后面可以加多个常量值,以逗号隔开,表示多个条件执行相同的语句。
  • case语句块中的声明语句必须用花括号包含起来。

三、switch语句的应用场景

switch语句适合于条件比较简单、分支路径比较少的情况,因为等价的if语句会显得冗长、可读性差。例如:对于枚举类型的判断,switch语句比if语句更加适合。

    public enum Weekday {
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY
    }

    public class SwitchEnumDemo {
        public static void main(String[] args) {
            Weekday day = Weekday.TUESDAY;
            switch(day) {
                case MONDAY:
                    System.out.println("今天是星期一");
                    break;
                case TUESDAY:
                    System.out.println("今天是星期二");
                    break;
                case WEDNESDAY:
                    System.out.println("今天是星期三");
                    break;
                case THURSDAY:
                    System.out.println("今天是星期四");
                    break;
                case FRIDAY:
                    System.out.println("今天是星期五");
                    break;
                case SATURDAY:
                    System.out.println("今天是星期六");
                    break;
                case SUNDAY:
                    System.out.println("今天是星期日");
                    break;
                default:
                    System.out.println("输入错误!");
            }
        }
    }

四、switch语句的注意事项

在使用switch语句时需注意以下问题:

  • case语句中的值不能重复。
  • 如果case语句中没有break语句,则从匹配的语句开始依次执行所有的语句块,直到遇到break语句或switch语句结束。
  • 如果default语句放在最后,则default语句可省略break语句。
  • 如果表达式的值为null,则会抛出NullPointerException异常。