1. 概述
首先说明,Java switch(x)中的x到底是否支持数字、字符、枚举、字符串类型,跟JDK的版本是相关的。
数字和字符,其实差不多事情,都是一直支持的。
从JDK1.5开始,支持枚举了,然后从JDK1.7开始,也支持String了。
当然,因为还有很多系统用经典的JDK1.6,所以最好别采用String作为参数,以免自找麻烦。
OK,使用数字和字符又有点太抽象了,所以建议使用枚举,如果觉得枚举太麻烦,还可以使用常量,以下分别举例哈。
2. switch使用枚举
直接上例子:
package org.maoge.demo; /** * Description:Switch参数为枚举类型的例子 枚举类型 * date:2017.10.18 * @author maoge */ public enum UserType { STUDENT,TEACHER,ADMIN; } package org.maoge.demo; /** * Description:Switch参数为枚举类型的例子 * date:2017.10.18 * @author maoge */ public class SwitchEnumDemo { public static void main(String[] args){ System.out.println("It begins"); UserType ut=UserType.TEACHER; switch(ut){ case STUDENT: System.out.println("按学生处理"); break; case TEACHER: System.out.println("按老师处理"); break; case ADMIN: System.out.println("按管理员处理"); break; } } }
3. switch使用常量
package org.maoge.demo; /** * Description:Switch参数为常量类型的例子 注意接口中的静动态常量可以直接通过接口名调用 此处UserTypeConstant也可以定义为类 * date:2017.10.18 * @author maoge */ public interface UserTypeConstant { final static int STUDENT=1; final static int TEACHER=2; final static int ADMIN=3; } package org.maoge.demo; /** * Description:Switch参数为常量类型的例子 * date:2017.10.18 * @author maoge */ public class SwitchConstantDemo { public static void main(String[] args) { int type=UserTypeConstant.ADMIN; switch(type){ case UserTypeConstant.STUDENT: System.out.println("按学生处理"); break; case UserTypeConstant.TEACHER: System.out.println("按老师处理"); break; case UserTypeConstant.ADMIN: System.out.println("按管理员处理"); break; } } }