【分支控制】(switch) 详解

switch分支结构

  • 基本语法
 switch (表达式){
            case 常量1: //当...
                语句块1;
                break; //跳出switch
            case 常量2:
                语句块2;
                break;
            ...
            case 常量n;
                语句块n;
                break;
            default:
                default语句块;
                break;
        }
  1. switch 关键字, 表示switch分支
  2. 表达式, 对应一个值
  3. case 常量1: 当表达式的值等于常量1, 就执行 语句块1
  4. break: 表示退出switch
  5. 如果和case常量1匹配, 就执行语句块1, 如果没有匹配, 就继续匹配case 常量2
  6. 如果一个都没有匹配上, 执行default

switch分支结构

  • 流程图
    在这里插入图片描述
  • 快速入门

案例:

  1. 请写一个程序, 该程序可以接收一个字符, 比如: a, b, c, d, e, f, g
  2. a表示星期一, b表示星期2…
  3. 根据用户的输入显示相应的信息, 要求使用switch语句
    Scanner input = new Scanner(System.in);
        System.out.println("请输入一个字符(a-g)");
        char c1 = input.next().charAt(0); //
        //在java中, 只要是有值返回, 就是一个表达式
        switch(c1) {
            case 'a':
                System.out.println("今天星期一");
                break;
            case 'b':
                System.out.println("今天星期二");
                break;
            case 'c':
                System.out.println("今天星期三");
                break;
//                ...
            default:
                System.out.println("输入有误");
                break;
        }

请添加图片描述

switch注意事项和细节讨论


  1. 表达式数据类型, 应和case 后的常量类型一致,或着是可以 自动转成 可以相互比较的类型, 比如输入的是字符, 而常量是int
  2. switch(表达式)中表达式的返回值必须是: (byte, short,int,char,enum,String)
  double c = 1.1;
        switch (c){ //错误
            case 1.1 : //错误
                System.out.println("ko");
                break;
        }
  1. case子句中的值必须是常量, 而不能是变量
  2. default子句是可选的, 当没有匹配的case时, 执行default
  3. break语句用来在执行完一个case分支后使程序跳出switch语句块; 如果没有写break, 程序会顺利执行到switch结尾.

请添加图片描述

案例练习


  1. 使用 switch 把小写类型的 char型转为大写(键盘输入)。只转换 a, b,c, d, e.其它的输出"other
//        创建Scanner对象
        Scanner input = new Scanner(System.in);
        System.out.println("请输入 a~e:");
        char c1 = input.next().charAt(0);
        switch (c1) {
            case 'a':
                c1 = 'A';
                System.out.println(c1);
                break;
            case 'b':

                c1 = 'B';
                System.out.println(c1);
                break;
                case 'c':
                    c1 = 'C';
                    System.out.println(c1);
                    break;
            case 'd':
                c1 = 'D';
                System.out.println(c1);
                break;
            case 'e':
                c1 = 'E';
                System.out.println(c1);
                break;
            default:
                System.out.println("other");
                break;
        }

小伙伴做剩下的题吧

  1. 对学生成绩大于60分的,输出"合格”。低于60分的,输出"不合格”。(注:输入。的成绩不能大于100),提示 成绩/60

  2. 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11秋季 12,1,2 冬季[练习,提示 使用穿透 ]


请添加图片描述

switch和if的比较


  1. 如果判断的具体数值不多, 而且符合byte, short, int, char, enum[枚举], String这6种类型, 虽然两个语句都可以使用, 建议使用switch语句

  2. 其他情况: 对区间判断, 对结果为boolean类型判断, 使用if, if的范围更广

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/654689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OrangePi AIpro初识及使用大模型GPT-Neo-1.3B测试

OrangePi AIpro介绍 1.1. 开发板简介 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭 载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB 两种版本。可以实现图像、视频等多种数据分析与推理…

package.json中peerDependencies的使用场景

文章目录 peerDependencies 的使用场景peerDependencies 的使用案例为什么使用 peerDependencies需要注意的事项主要作用 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入&#xf…

保护“第二生命线”,科技守护颈椎健康

脊柱支撑着人体重量,汇集着众多血管神经,素有“人体第二生命线”之称。在如今快节奏的时代,人们生活方式也在发生着变化,长期低头看手机、伏案久坐等不良生活习惯引发脊柱健康问题,且呈现年轻化趋势。目前,…

基于 Wireshark 分析 TCP 协议

一、TCP 协议 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议。它在网络通信中扮演着重要的角色,用于保证数据的可靠传输。 TCP协议的特点如下: 1. 面向连接:在通信前需要先建立连接&#x…

阿赵UE引擎C++编程学习笔记——GameMode和生命周期

大家好,我是阿赵。   之前在介绍HelloWorld的时候,我们很创建了一个MyGameModeBase的c类,然后就可以在BeginPlay函数里面写打印的HelloWorld。这一篇主要是说一下,GameMode究竟是一个什么东西,然后UE里面的生命周期是…

瑞_Windows环境下使用bat重启jar包等服务

文章目录 命令示例重启ray-project.jar重启redis服务 🙊 前言:经验分享——Windows环境下使用.bat批处理文件重启 jar 包等服务。在学习或者工作日常中,有时候会需要在 Windows 系统环境下去启动 jar 包或其它服务,此时如果使用关…

RSC英国皇家化学学会文献查找下载

英国皇家化学学会(Royal Society of Chemistry,简称RSC)是以促进全球化学领域研究发展与传播为宗旨的国际权威学术机构,是化学信息的一个重要宣传机关和出版商。RSC出版的期刊是化学领域的核心期刊,大部分被SCI和MEDLINE收录,如An…

详解 Scala 的变量、标识符、数据类型

一、注释 Scala 注释与 Java 一致 // 单行注释/** 多行注释*//*** 文档注释*/二、变量与常量 1. 语法 // 变量,类型可以省略 var varName:varClass value // 常量,类型可以省略 val valName:valClass value2. 案例 // 使用 var/val 才会在类中声明属…

系统架构设计师【第1章】: 绪论 (核心总结)

文章目录 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1.1.3 软件架构的应用场景1.1.4 软件架构的发展未来 1.2 系统架构设计师概述1.2.1 架构设计师的定义、职责和任务1.2.2 架构设计师应具备的专业素质1.2.3 架构设计师的知识…

自适应星空背景个人导航单页(附带源码)

自适应星空背景个人导航单页 效果图部分源码领取源码下期更新预报 效果图 部分源码 function Star(id, x, y) {this.id id;this.x x;this.y y;this.r Math.floor(Math.random() * 2) 1;var alpha (Math.floor(Math.random() * 10) 1) / 10 / 2;this.color "rgba(…

pip install pytorch-quantization error

一 报错信息 最近安装pytorch-quantization报错,安装失败报错信息如下: Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com Collecting pytorch-quantizationDownloading pytorch-quantization-2.2.1.tar.gz (6.8 kB)Prepari…

Kali : 安装Google Chrome 浏览器和ChromeDriver

一、安装Google Chrome 浏览器 1、下载Google Chrome 执行如下命令,下载最新版Chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 执行下载截图 2、安装Chrome 使用dpkg安装下载的deb包 sudo dpkg -i google-chrome-st…

美业系统SaaS收银系统源码-顾客在系统付款了但系统未显示怎么办?美业系统实测

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 活动促销 PC管理后台、手机APP、iPad APP、微信小程序 1. 提供门店名称、付款凭证和会员手机号 2. 到订单明细查询, 按门店名称和会员手机号查询看是否有相…

IDEA社区版创建并运行maven管理的web项目的基本流程

一、前言 注意,这是社区版,旗舰版可以绕路。 二、过程 1、下载安装社区版 2、安装jdk,tomcat,maven 3、创建并启动项目 注意选择的骨架是maven-archetype-webapp,然后next,设置项目名,存放…

家政预约小程序07服务分类展示

目录 1 创建服务分类页面2 侧边栏选项卡配置3 配置数据列表4 从首页跳转到分类页总结 上一篇我们开发了首页的服务展示功能,本篇我们讲解一下服务分类功能的开发。在小程序中通常在底部导航栏有一个菜单可以展示所有服务,侧边选项卡可以展示分类信息&…

Android 11 触摸小圆点显示流程

在开发者选项中,打开 “显示点按操作反馈” 开关,当我们在触摸屏幕时,会显示一个小圆点,来分析下小圆点的显示流程。 操作这个开关时,其实就是操作Settings数据库中的 SHOW_TOUCHES //packages\apps\Settings\src\com…

数据大屏vue3+ts+axios+MockJS+dataV+echarts

一、官网/文档 vue3:https://cn.vuejs.org/api/TypeScript:https://www.tslang.cn/docs/handbook/basic-types.htmlaxios:http://www.axios-js.com/zh-cn/docs/MockJS:http://mockjs.com/dataV:http://datav.jiamingh…

马斯克xAI融资60亿美元,宣布打造世界第一超算中心,10万张H100GPU

昨天,埃隆马斯克的xAI初创公司宣布获得60亿美元的巨额融资,主要用于打造一台巨大的超级计算机,马斯克称之为“超级计算工厂”。 从创立OpenAI到如今的xAI,技术和算力的发展历经了几个时代,但似乎马斯克的吸金能力一直…

CISCN --EzHeap

当时有点着急了,这题没写出来,结束后在ctfshow上做了一下。 使用的方法是environ泄露栈地址,然后在栈上构造orw的rop链。 以下是过程: 只能orw。 堆体开沙盒模式会在heap和bin一开始构造很多垃圾堆。所以分配和free的时候要注意…

nuxt3+Element Plus项目搭建过程记录

背景 本文只记录项目搭建过程中遇到的一些问题和关键点&#xff0c;nuxt框架的说明和API请参照官网学习 官网&#xff1a;https://nuxt.com/docs/getting-started/introduction 1. 初始化项目 指令如下: npx nuxilatest init <project-name>我在安装过程中出现报错&a…