// switch 的 穿透
        // 什么是switch的穿透
        // 如果在 switch 中没有定义break , switch 会从定位的程序,一直执行到所有switch程序的结束
        // 这种现象称为switch的穿透
        // 效果是,从定位的程序位置,穿透所有的case和default,执行之后所有的程序
        // 一般情况下,我们杜绝switch的穿透这样的现象的出现
        // 但是在特殊情况下,我们还是可以灵活使用switch的穿透,优化代码
     
     
        // switch穿透的小应用
        // 随机生成 1-12 的月份,通过程序,输出这个月有多少天
        // 暂时不考虑闰年的情况
        // 1,3,5,7,8,10,12月是31天
        // 4,6,9,11月是30天
        // 2月是28天
        var month = parseInt(Math.random() * (15 + 1 - 1) + 1);
        // 使用if判断来写
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            console.log(`现在是${month}月,本月有31天`);
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            console.log(`现在是${month}月,本月有30天`);
        } else if (month == 2) {
            console.log(`现在是${month}月,平年有28天,闰年有29天`);
        } else {
            console.log(`现在是${month}月,地球上就12个月,您是外星人吧`);
        }
        // 当前是判断是否是某个具体的月份数值,这样的比较判断,更使用使用switch来定义
        // 利用穿透来优化switch语句
        // 1,3,5,7,8,10,12 时,执行的程序都是完全相同的
        // 可以利用 switch 的穿透,来优化程序
        // 思路: 当数值是这些数值内容的时,没有break,直接执行穿透效果,最终都执行相同的程序
        // 方法: 之前不定义要执行的程序,只在最后一种情况中,定义执行程序和break
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                console.log(`现在是${month}月,本月有31天`);
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                console.log(`现在是${month}月,本月有30天`);
                break;
            case 2:
                console.log(`现在是${month}月,平年有28天,闰年有29天`);
                break;
                
            default:
                console.log(`现在是${month}月,地球上就12个月,您是外星人吧`);
                break;
        }

switch的穿透的更多相关文章

  1. switch的穿透,是参数里包含case内容就执行。

    package rom; import java.lang.*; /* * switch的穿透,是参数里包含case内容就执行. */ public class Xamle_5 { public st ...

  2. switch 的穿透, 以及穿透利用

    switch 穿透测试: outputs: 添加break 阻止switch穿透: outputs: 利用switch的穿透功能:

  3. switch case 穿透 示例

    public class SwitchCase { //判断输入的月份属于第几季度 public static void main(String[] args) { //随机获得 1-12个月份中的一 ...

  4. if与switch(break穿透)

    ## if与switch(分支语句) ### 一.if...else if...else1.语法 if(条件表达式1){ 语句体1; }else if(条件表达式2){ 语句体2; }else{ 语句 ...

  5. python 数据类型 之 利用 dict 模仿 switch语句功能

    Python本身并不提供Switch的语法功能,为了能够解决类似switch分支需求的问题,我们可以使用字典代替实现. 解决思路: 利用字典取值的get方法的容错性,处理switch语句中的defau ...

  6. 4.2 Go switch

    4.2 Go switch switch语句用于基于不同条件执行不同动作,每一个case分支唯一,自上而下逐一测试,直到匹配结束,默认自动终止,不需要break. 2. switch基本语法 swit ...

  7. Java学习笔记(03)

    一.回顾运算符: 一.控制语句 1.1 顺序结构 (最常见的) 特点:代码从上往下依次执行

  8. java学习第二天 回顾运算符

    一.回顾运算符: 补充: 三元运算符. 代码: /* 三目运算符: 三元运算符: 结构: 条件?条件成立的结果 :条件不成立的结果 ; */ class Demo1 { public static v ...

  9. swift杂记

    1.0   数据类型强转  范围小 --->范围大  不会丢失精度  : 范围大 ---> 范围小 ,可能丢失精度 如 :Int(4.2) = 4 :CGFloat(2) = 2.0 2. ...

  10. java基础-day6

    第06天 java基础语法 今日内容介绍 u Eclipse断点调试 u 基础语法的练习 第1章   Eclipse断点调试 1.1      Eclipse断点调试概述 Eclipse的断点调试可以 ...

随机推荐

  1. 大数据ETL开发之图解Kettle工具入门到精通(经典转载)

    大数据ETL开发之图解Kettle工具(入门到精通) 置顶 袁袁袁袁满 文章目录 第0章 ETL简介 第1章 Kettle简介 1.1 Kettle是什么 1.2 Kettle的两种设计 1.3 Ke ...

  2. 深入了解PBKDF2:密码学中的关键推导函数

    title: 深入了解PBKDF2:密码学中的关键推导函数 date: 2024/4/20 20:37:35 updated: 2024/4/20 20:37:35 tags: 密码学 对称加密 哈希 ...

  3. CF1995E Long Inversions(贪心 + 差分)

    见代码 点击查看代码 //背景:夸一下自己,CF1955A~E均是自己想出来的,这道题思路是自己想的,唯一没想到用差分数组维护 //原理:贪心(想最左边的1开始,不可能对其左边包括自己操作了,否则又要 ...

  4. 力扣535(java)-TinyURL的加密与解密(中等)

    题目: TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL  ...

  5. 力扣306(java)-累加数(中等)

    题目: 累加数 是一个字符串,组成它的数字可以形成累加序列. 一个有效的 累加序列 必须 至少 包含 3 个数.除了最开始的两个数以外,序列中的每个后续数字必须是它之前两个数字之和. 给你一个只包含数 ...

  6. 迁移 Nacos 和 ZooKeeper,有了新工具

    简介: 注册中心迁移在行业中主要有两个方案,一个是双注册双订阅模式(类似数据库双写),一个是 Sync 模式(类似于数据库 DTS):MSE 同时支持了两种模式,对于开通 MSE 服务治理客户,MSE ...

  7. [Go] 选择 Beego 的三个理由

    1. 项目支持角度较其它框架考虑的多一些,比如:目录结构的简单约定,内置项目配置读取,内置bee脚手架,热重载特性 等. (实际这些 feature 都可以找到 golang 专精的组件引入起来,效果 ...

  8. 修复 GitLab 的 CI Runner 提示找不到 pwsh 执行文件

    本文告诉大家如何修复使用 GitLab 的 Runner 做 CI 时提示 "pwsh": executable file not found in %PATH% 错误 有两个方法 ...

  9. GitHub 的 Action 接入 Stryker.NET 进行自动化测试单元测试鲁棒性

    假设有一个捣蛋的小伙伴加入了你的团队,这个捣蛋的小伙伴喜欢乱改代码,请问此时的单元测试能否拦住这些逗比行为?如果不能拦住逗比行为,是否代表着单元测试有所欠缺,或者有某些分支逻辑没有考虑到.本文将告诉大 ...

  10. Codeforces Round 927 (Div. 3) EFG

    E:Link 题意:给定长度小于 \(4 \times 10^5\) 的整数 \(n\),求从 \(0\) 到 \(n\) 各数位变化次数之和. 如:\(n = 12345\) 个位变化 \(1234 ...