一.用case穿透简化代码以一个小案例为例:键盘录入星期数,输出工作日、休息日(1-5)工作日,(6-7)休息日

package test;import java.util.Scanner;public class Test15 {public static void main(String[] args) {/*需求:键盘录入星期数,输出工作日、休息日(1-5)工作日,(6-7)休息日*///1.键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入今天星期几");int week = sc.nextInt();//2.用switch进行判断switch (week){case 1:System.out.println("工作日");break;case 2:System.out.println("工作日");break;case 3:System.out.println("工作日");break;case 4:System.out.println("工作日");break;case 5:System.out.println("工作日");break;case 6:System.out.println("休息日");break;case 7:System.out.println("休息日");break;default:System.out.println("超出范围");}

总结:从代码中可以看出代码有些烦,

二.case的执行,什么是case穿透,case穿透使用场景

1.case执行流程:
  首先还是会拿着小括号中表达式跟下面每一个case进行匹配。 如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个Switch语句。 如果没有发现break,那么程序会继续执行下一个case的语句,一直到break或者右大括号为止。

2.case穿透 就是语句中没有break导致的

3.使用场景: 如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码

如下使用case穿透后简化的代码


import java.util.Scanner;public class Test15 {public static void main(String[] args) {/*需求:键盘录入星期数,输出工作日、休息日(1-5)工作日,(6-7)休息日*///1.键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入今天星期几");int week = sc.nextInt();//2.用switch进行判断switch (week){case 1:case 2:case 3:case 4:case 5:System.out.println("工作日");break;case 6:case 7:System.out.println("休息日");break;default:System.out.println("超出范围");}}
}

进一步简化代码:一下代码仅支持jdk14

switch (week){case 1,2,3,4,5:System.out.println("工作日");break;case 6,7:System.out.println("休息日");break;default:System.out.println("超出范围");}

一个小案例理解case穿透、switch语句相关推荐

  1. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import timestart = time.time()u ...

  2. 用一个小案例来解释linux中文件或目录的权限

    Linux中文档和目录的权限 众所周知 , Linux中文档的权限包括所有者权限(User).同组权限(Group)和其他权限(Other).使用rwx来作为表示,分别为read.write和exec ...

  3. 爬虫的一个小案例:python实现英汉互译

    什么是网络爬虫? 网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序.众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容. 一个小案例:py ...

  4. switch case穿透Java_Switch语句的case穿透

    Switch语句的case穿透 一 switch语句几点说明: 1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的. 2.case后面表达式可以接受: 基本数据类型,b ...

  5. php中switch语句的理解,php中switch语句的使用详解

    我们之前给大家介绍了关于php中switch语句的介绍,我们都知道php中switch语句是循环语句,是一个开关语句,那么很多朋友都只知道简单的switch开关语句的用法了,今天就带大家了解一下php ...

  6. php switch case default,switch语句中必须有default选项吗?

    switch语句中不是必须有default选项的.switch语句首先会找满足条件的case值做为执行后面的程序入口,若所有的case都不满足,则找default入口,若未找到则退出整个语句:defa ...

  7. c语言switch case 空,switch语句中case为空时的意义

    switch语句中case为空时的意义 一成绩单的程序 void main() {float score; printf("input score:\n"); scanf(&quo ...

  8. 英雄联盟的小案例理解Java中如何实现OCP原则

    案例: 英雄联盟的英雄.道具.地图,每年都会进行频繁变更 如果没有使用软件工程的开发思想,随便改其中一个道具的属性,就可能会导致非常严重的错误 要实现变更/增加英雄时,可选英雄数量和玩家开始一局游戏时 ...

  9. 一个小案例精通lamda表达式与函数式接口

    前言:只有基础(多态.匿名接口实现类)足够扎实才能更好的学习花拳绣腿(lamda表达式),Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...

最新文章

  1. linux命令行运行c程序,如何在Linux中编写和运行C程序
  2. 信息系统项目管理师:第4章:项目整体管理与变更管理(3)
  3. Magic Powder - 2
  4. php封装一个加密算法,PHP封装的非对称加密RSA算法示例
  5. hana studio版本和hana版本的区别
  6. 2020CCPC威海
  7. mybatis学习(2):基本设置和核心配置
  8. (转)Spring Boot (十四): Spring Boot 整合 Shiro-登录认证和权限管理
  9. Spring :基于@Transactional注解的声明式事物
  10. python 多列对齐_python – 如何连接两个数据帧并在这样的特定列上对齐?
  11. PostgreSQL 递归查询 (转)
  12. 太阳代理ip_IP直通车 | 冬季之始,你知多少
  13. 如何从零开始搭建SRE?
  14. TokenInsight 对话首席——2019年底层公链机会展望
  15. OPTIONS方法禁用
  16. 浅谈什么是 云原生
  17. 「磨金石教育学员插画作业」什么是日系插画?
  18. WinX菜单是Win8系统开始菜单的下一代
  19. C语言-链表-添加到链表尾部
  20. xHiveAI-A311D:AI开发套件

热门文章

  1. 中山纪念中学10日游
  2. 重磅!陀螺财经发布2019「年度影响力专栏」链游、矿业、科普等榜
  3. 那些年我们看过的3D动画电影
  4. xdb 模式注册报错:ORA-31001
  5. Stable Diffusion人工智能图像合成
  6. legend分栏 matlab_Matlab中legend位置
  7. 2023年3月-4月各大学网络教育统考大学英语B题库与考试时间
  8. 语音控制开关灯----mega2560
  9. PSP死神灵魂升温6 游戏ISO文件和完美通关存档和金手指
  10. coscos3D 基础教程与实践