Java switch多值匹配操作详解

这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

我们都知道 switch 用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示:

/**
 * @author 栈长
 */
private static void test(int value) {
  switch (value) {
    case 1:
      System.out.println("1");
      break;
    case 2:
      System.out.println("1");
      break;
    case 3:
      System.out.println("1");
      break;
    case 4:
      System.out.println("1");
      break;
    case 5:
      System.out.println("1");
      break;
    case 6:
      System.out.println("0");
      break;
    case 7:
      System.out.println("0");
      break;
    default:
      System.out.println("-1");
  }
}

相关阅读:switch case数据类型。

大概的意思就是,周一到周五输出:1,周六到周日输出:0,默认输出-1。

这样写,很多重复的逻辑,冗余了。

也许这个例子不是很合适,用 if/ else 更恰当,但这只是个例子,实际开发中肯定会有某几个 case 匹配同一段逻辑的情况。

那么,如何让多个 case 匹配同一段逻辑呢?

如下面例子所示:

/**
 * @author 栈长
 */
private static void test(int value) {
  switch (value) {
    case 1: case 2: case 3: case 4: case 5:
      System.out.println("1");
      break;
    case 6: case 7:
      System.out.println("0");
      break;
    default:
      System.out.println("-1");
  }
}

把相同逻辑的 case 放一起,最后一个 case 写逻辑就行了。

格式化后就是这样了:

/**
 * @author 栈长
 */
private static void test(int value) {
  switch (value) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      System.out.println("1");
      break;
    case 6:
    case 7:
      System.out.println("0");
      break;
    default:
      System.out.println("-1");
  }
}

是不是很骚?

其实这不是最合适的最好的写法,在 Java 12 中还可以更骚。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java控制语句之if、switch语句

    java if语句 Java控制语句分为三大类:①顺序结构:②选择结构:③循环结构. -------------------------------------------------------------------------------- 选择结构又分为:①单选择结构:②双选择结构:③多选择结构. 主要涉及: if_else , switch , while , break 和 continue , for. if单选择结构 对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳

  • Java中Switch用法代码示例

    一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),  在java1.7后支持了对string的判断 还有一点要注意的是:在java中如果switch的case语句中少写了break;这个关键字,在编译的时候并没有报错.但是在执行的时候会一直执行所有case条件下的语句并不是去判断,所以会一直执行直到遇到break关键字跳出或者一直执行到defaut语句. 还有就是如果

  • java switch语句使用注意的四大细节

    switch语句的格式如下:(它的功能是选出一段代码执行) 复制代码 代码如下: switch(整数选择因子) { case 整数值1 : 语句; break; case 整数值2 : 语句; break; case 整数值3 : 语句; break; case 整数值4 : 语句; break; case 整数值5 : 语句; break; ... default:语句; } 但是要注意几点如下: 1.switch中case的参数类型只能是int类型,但是放byte,short,char类型的

  • Java语法基础之选择结构的if语句、switch语句详解

    [前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能. 流程控制语句分类: 顺序结构选择结构:if语句.switch语句循环结构:while语句.for语句 一.顺序结构: 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的. 总的来说:写在前面的

  • Java switch case数据类型原理解析

    这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法格式如下: switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default

  • Java中switch判断语句典型使用实例

    下面一个是典型的switch语法运用的例子. import java.util.Scanner; public class JudgeMonth { public static void main(String[] arg){ Scanner scan = new Scanner(System.in); System.out.println("请输入月份:"); int month = scan.nextInt(); switch(month){ case 12: case 1: ca

  • java 学习笔记(入门篇)_多选择结构switch语句

    多选择结构switch语句 在java中为多路分支选择流程专门提供了switch语句,switch语句根据一个表达式的值,选择运行多个操作中的一个.他的语法形式如下: 复制代码 代码如下: switch(表达式){ case 表达式常量1:语句1: break: case 表达式常量2:语句2: break: ...... case 表达式常量n:语句n: break: [default:语句n+1:] } 其中,一个case表达式常量成为标号,代表一个case分支的入口.switch语句在运行

  • java中switch case语句需要加入break的原因解析

    java中switch case语句需要加入break的原因解析            java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码,在源码中分析应该如何使用,大家可以参考下: 假设我们有如下这样一个switch语句: public static void test(int index) { switch (index) { case 1: System.out.println(1); case 2: System.out.println(2);

  • Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示: /** * @author 栈长 */ private static void test(int value) { switch (value) { case 1: System.out.println("1"); break; case 2:

  • Java实现截取字符串的操作详解

    目录 使用JDK截断一个字符串 使用 String 的 substring() 方法 使用 String 的 split() 方法 使用 Pattern 类 使用 CharSequence 的 codePoints() 方法 Apache Commons 库 使用 StringUtils的left() 方法 使用 StringUtils 的 truncate() 方法 Guava库 总结 大家好,我是指北君. 在本文中,我们将学习在Java中把一个String截断到所需的字符数的集中方法. 首先

  • Java Optional的判空操作详解

    目录 Optional判空 代码模拟 Optional常用方法 使用Optional一定比null好吗 Optional 使用场景 Optional判空 JAVA在1.8版本推出Optional,官方文档将其描述为可能包含或不包含非空值的容器对象,目前Optional用于避免程序出现异常NullPointerException. 代码模拟 // 下面所有类省略set,get方法 public class Employee { private String employeeName; privat

  • java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"} 封装返回对象 对象被封装在base.util.ResponseUtils类型下,返回值是标准的ResponseEntity对象,返回体进行了二次封装,主要有status,messsage

  • Java实现Excel导入导出操作详解

    目录 前言 1. 功能测试 1.1 测试准备 1.2 数据导入 1.2.1 导入解析为JSON 1.2.2 导入解析为对象(基础) 1.2.3 导入解析为对象(字段自动映射) 1.2.4 导入解析为对象(获取行号) 1.2.5 导入解析为对象(获取原始数据) 1.2.6 导入解析为对象(获取错误提示) 1.2.7 导入解析为对象(限制字段长度) 1.2.8 导入解析为对象(必填字段验证) 1.2.9 导入解析为对象(数据唯一性验证) 1.3 数据导出 1.3.1 动态导出(基础) 1.3.2 动

  • 工作中Java集合的规范使用操作详解

    目录 一.前言 二.规范使用Java集合 一.前言 现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量.比如:五花八门的错误码会人为地增加排查问题的难度:数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险:工程结构混乱导致后续项目维护艰难:没有鉴权的漏洞代码容易被黑客攻击等.依据约束力强弱及故障敏感性,规约依次分为[强制].[推荐].[参考]三大类.在延伸的信息中,“说明”对规约做了适当扩展和解释:“正例”提倡什么样的编

  • Java实现顺序表的操作详解

    目录 一.顺序表是什么 二.自定义异常 空引用异常 下标越界异常 三.顺序表的方法 顺序表的实现 获取顺序表长度 顺序表是否为空 顺序表是否为满 打印顺序表 末尾新增元素 指定位置新增元素 判断是否包含某元素 查找某个元素对应的位置 获取 pos 位置的元素 给 pos 位置的元素赋值 删除第一次出现的关键字key 清空顺序表 四.自定义顺序表 一.顺序表是什么 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数据的增删查改. 数组不就是一个现

  • Java switch关键字原理及用法详解

    这篇文章主要介绍了Java中 switch关键原理及用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Switch语法 switch作为Java内置关键字,却在项目中真正使用的比较少.关于switch,还是有那么一些奥秘的. 要什么switch,我有if-else 确实,项目中使用switch比较少的一个主要原因就在于它的作用能被if-else代替,况且switch对类型的限制,也阻碍了switch的进一步使用. 先看看switch的语法

  • Java 对 Properties 文件的操作详解及简单实例

    Java 对 Properties 文件的操作 简介 在 Java 中,我们常用 java.util.Properties.Properties 类来解析 Properties 文件,Properties 格式文件是 Java 常用的配置文件,它用来在文件中存储键-值对,其中键和值用等号分隔,格式如下: name=shawearn Properties 类是 java.util.Hashtable<Object, Object> 的子类,用于键和值之间的映射. 在对 Properties 格式

  • java高效文件流读写操作详解

    导语 防止自己以后忘记,记录一些文件流的性能对比. 平常经常会操作到文件读写,java当中提供了许多操作文件的类,一般来说,文件操作也叫流操作,可以按照以下方式分类: 按照功能分类,字节流和字符流. 按照节点流和过滤流,节点流直接操作文件,过滤流包装了节点流和过滤流.如FileInputStream和BufferedFileInputStream就是分别是节点流和过滤流. 文件流比较 下面重点比较我们经常用的几个流 (1) DataInputStream+FileInputStream (2)

随机推荐