java switch enum

java switch enum

java switch enum

引言

在Java编程中,我们经常需要根据不同的条件执行不同的代码块。Java的switch语句是一种常用的条件语句,它允许我们根据不同的情况执行不同的代码块。在Java 5之前,switch语句只能用于基本数据类型和字符串类型的判断,然而,引入枚举(enum)类型后,我们可以更加灵活地使用switch语句。

枚举(enum)类型的介绍

枚举(enum)是Java中的一种特殊数据类型,它是一组预定义的常量的集合。每个枚举常量都是一个对象,它们在声明枚举类型时被定义。

以下是一个示例枚举类型的代码:

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
Java

上述代码定义了一个名为Day的枚举类型,它包含了七个枚举常量,分别代表一周的不同天。在这个示例中,Day是一个枚举类型,MONDAYTUESDAY等则是该类型的枚举常量。

switch语句的基本用法

使用switch语句的基本语法如下:

switch (expression) {
    case value1:
        // 代码块1
        break;
    case value2:
        // 代码块2
        break;
    ...
    default:
        // 默认代码块
        break;
}
Java
  • expression是一个表达式,它的值会与case后面的常量进行比较。
  • case后面的value1value2等是可能的取值,用于与expression进行比较。
  • 如果expression的值与某个case的值相等,那么对应的代码块将会被执行。
  • 每个代码块都需要以break语句结束,用于退出switch语句,否则会继续执行下一个代码块。
  • 如果expression的值与所有case的值都不匹配,那么会执行default代码块(可选)。
  • default代码块可以放在switch语句的任意位置,但一般习惯放在最后。

下面我们来看一个简单的示例,演示switch语句的基本用法:

int day = 3;
String dayName;
switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    case 6:
        dayName = "Saturday";
        break;
    case 7:
        dayName = "Sunday";
        break;
    default:
        dayName = "Invalid day";
        break;
}
System.out.println("The day is " + dayName);
Java

在这个示例中,我们根据day的值来确定对应的dayName,并输出。

使用switch语句处理枚举类型

Java 5之前,我们无法直接在switch语句中使用枚举类型。然而,从Java 5开始,我们可以使用枚举类型作为switch语句的expression

以下是一个使用枚举类型的switch语句的示例:

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

Day day = Day.WEDNESDAY;
String dayName;

switch (day) {
    case MONDAY:
        dayName = "Monday";
        break;
    case TUESDAY:
        dayName = "Tuesday";
        break;
    case WEDNESDAY:
        dayName = "Wednesday";
        break;
    case THURSDAY:
        dayName = "Thursday";
        break;
    case FRIDAY:
        dayName = "Friday";
        break;
    case SATURDAY:
        dayName = "Saturday";
        break;
    case SUNDAY:
        dayName = "Sunday";
        break;
    default:
        dayName = "Invalid day";
        break;
}

System.out.println("The day is " + dayName);
Java

在这个示例中,我们首先定义了一个枚举类型Day,然后创建了一个day变量并将其设为Day.WEDNESDAY。接下来,我们使用switch语句根据day的值将其对应的英文名称赋值给dayName,最后输出。

注解与switch语句

在使用枚举类型时,有时我们可能希望将每个枚举常量与其他的属性关联起来。在这种情况下,我们可以使用注解(Annotation)来为每个枚举常量添加额外的信息。

以下是一个使用注解的示例代码:

public enum Day {
    @Annotation1(description = "This is Monday")
    MONDAY,
    @Annotation1(description = "This is Tuesday")
    TUESDAY,
    @Annotation2(description = "This is Wednesday")
    WEDNESDAY,
    @Annotation2(description = "This is Thursday")
    THURSDAY,
    @Annotation3(description = "This is Friday")
    FRIDAY,
    @Annotation3(description = "This is Saturday")
    SATURDAY,
    @Annotation1(description = "This is Sunday")
    SUNDAY
}

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation1 {
    String description() default "";
}

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation2 {
    String description() default "";
}

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation3 {
    String description() default "";
}
Java

在这个示例中,我们为每个枚举常量添加了不同的注解@Annotation1@Annotation2@Annotation3。每个注解都有一个description属性,它用于存储额外的描述信息。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册