Java中的switch分支结构

switch分支结构

  • switch分支结构
    • 1.基本语法
    • 2.说明
    • 3.流程图
    • 4.案例
    • 5.注意事项
    • 6.练习
    • 7.switch和if的比较

switch分支结构

1.基本语法

switch(表达式){case 常量1:  //当...语句块1;break;case 常量2:  语句块2;break;...case 常量n:  语句块n;break;default:default语句块;break;
}

在Java中只要是一个表达式就有值返回

2.说明

1)switch关键字,表示switch分支
2)表达式 对应一个值
3)case 常量1 :当表达式的值等于常量1,就执行 语块1
4)break :表示退出switch
5)如果和case 常量1 匹配,就执行语块1,如果没有匹配,就继续匹配 case 常量2
6)如果一个都没有匹配上,执行default

3.流程图

在这里插入图片描述
如果等于常量1,执行语句块1,若没有break则会执行语句块2,还没有break继续执行语句块3(穿透)

4.案例

编写一个程序,该程序可以接收一个字符,比如a,b,c,d,e,f,g
a表示星期一,b表示星期二…
根据用户的输入显示相应的信息,要求使用switch语句完成

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入");char c1 = sc.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("输入不正确");}System.out.println("退出switch,继续执行程序");}  
}

5.注意事项

1)表达式数据类型应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int(字符型可以自动转换成int型)
2)switch(表达式)中表达式的返回值必须是:byte , short , int , char , enum[枚举] , String
3)case子句中的值必须是常量或常量表达式,而不能是变量
4)default子句是可选的,当没有匹配的case时,执行default
5)break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break;

6.练习

对于成绩大于60分的,输出“合格”,低于60分的,输出“不合格”。输入的成绩不得大于100

1)临时变量temp

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入成绩");double temp = sc.nextDouble(); //用一个临时变量temp来接收键盘输入的成绩int grade = 0;if(temp >= 0 && temp < 60){grade = 1;}else if(temp >= 60 && temp <=100){grade = 2;}else{System.out.println("成绩不对重新输入");}switch(grade) {case 1 :System.out.println("不合格");break;case 2 :System.out.println("合格");break;}}  
}

2)强制类型转换(int)成绩 / 60

import java.util.Scanner;
public class comment01{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入成绩:");double grade = sc.nextDouble();if(grade >= 0 && grade <= 100){switch((int)(grade / 60)){case 0 :System.out.println("不合格");break;case 1 :System.out.println("合格");	break;}}else{System.out.println("成绩输入错误,请输入成绩在0-100内");}}}

根据指定月份,打印该月份所属的季节。3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季

import java.util.Scanner;
public class comment01{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入月份(1-12):");int month = sc.nextInt();//case穿透switch(month){case 1 :case 2 :case 12 :System.out.println("冬季");break;case 3 :case 4 :case 5 :System.out.println("春季");break;case 6 :case 7 :case 8 :System.out.println("夏季");break;case 9 :case 10 :case 11 :System.out.println("秋季");break;default :System.out.println("输入有误,请输入1-12的月份");}}
}

7.switch和if的比较

1)如果判断的具体值不多,而且符合byte、short、int、char、enum、String这6种类型。虽然两个语句都可以使用,建议使用switch语句。
2)其他情况:对区间判断,对结果为boolean类型判断,使用if ,if的适用范围更广。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路径跟踪之导航向量场——二维导航向量场

今天带来一期轨迹跟踪算法的讲解&#xff0c;首先讲解二维平面中的导航向量场[1]。该方法具有轻量化、计算简便、收敛性强等多项优点。该方法根据期望的轨迹函数&#xff0c;计算全局位置的期望飞行向量&#xff0c;将期望飞行向量转为偏光角&#xff0c;输入底层控制器&#x…

prometheus client_java实现进程的CPU、内存、IO、流量的可观测

文章目录 1、获取进程信息的方法1.1、通过读取/proc目录获取进程相关信息1.2、通过Linux命令获取进程信息1.2.1、top&#xff08;CPU/内存&#xff09;命令1.2.2、iotop&#xff08;磁盘IO&#xff09;命令1.2.3、nethogs&#xff08;流量&#xff09;命令 2、使用prometheus c…

AAA Mysql与redis的主从复制原理

一 &#xff1a;Mysql主从复制 重要的两个日志文件&#xff1a;bin log 和 relay log bin log&#xff1a;二进制日志&#xff08;binnary log&#xff09;以事件形式记录了对MySQL数据库执行更改的所有操作。 relay log&#xff1a;用来保存从节点I/O线程接受的bin log日志…

用凡尔码系统进行隐患排查二维码的制作

隐患排查是企业安全管理的重要环节&#xff0c;通过定期或不定期地对生产设备、作业场所、作业人员等进行检查&#xff0c;发现并消除安全隐患&#xff0c;预防事故的发生。隐患排查的效率和质量直接影响到企业的安全生产水平和经济效益。 传统的隐患排查方法主要依靠纸质进行…

PostgreSQL学习笔记七:常规SQL操作

PostgreSQL 支持标准的 SQL 语句&#xff0c;同时也扩展了一些特有的功能。以下是一些常规的 SQL 语句示例&#xff0c;这些示例涵盖了数据定义、数据操作和数据查询的基本操作&#xff1a; 数据定义语言 (DDL 创建数据库&#xff1a; CREATE DATABASE mydatabase;创建表&#…

Vue/组件的生命周期

这篇文章借鉴了coderwhy大佬的Vue生命周期 在Vue实例化或者创建组件的过程中 内部涉及到一系列复杂的阶段 每一个阶段的前后时机都可能对应一个钩子函数 以下是我根据coderwhy大佬文章对于每一个阶段的一些看法 1.过程一 首先实例化Vue或者组件 在实例化之前 会对应一个钩子函…

安装最新 MySQL 8.0 数据库(教学用)

安装 MySQL 8.0 数据库&#xff08;教学用&#xff09; 文章目录 安装 MySQL 8.0 数据库&#xff08;教学用&#xff09;前言MySQL历史一、第一步二、下载三、安装四、使用五、语法总结 前言 根据 DB-Engines 网站的数据库流行度排名&#xff08;2024年&#xff09;&#xff0…

使用 Go 语言与 Redis 构建高效缓存与消息队列系统

什么是 Redis&#xff1f; Redis 是一个开源的内存数据库&#xff0c;支持多种数据结构&#xff0c;包括字符串、列表、集合、哈希和有序集合。由于 Redis 运行在内存中&#xff0c;读写速度极快&#xff0c;常被用于构建缓存系统、实时排行榜、会话存储和消息队列等高并发场景…

【浏览器】如何正确使用Microsoft Edge

1、清理主页广告 如今的Microsoft Edge 浏览器 主页太乱了&#xff0c;各种广告推送&#xff0c;点右上角⚙️设置&#xff0c;把快速链接、网站导航、信息提要、背景等全部关闭。这样你就能得到一个超级清爽的主页。 网站导航       关闭 …

十款文件防泄密软件推荐,保护您的重要信息

信息安全是现代社会不可忽视的重要话题&#xff0c;尤其是在工作和生活中接触到大量敏感数据时。选择合适的文件防泄密软件&#xff0c;可以有效防止信息泄露。以下是我们为您推荐的十款优秀软件。 Ping32 以高效的文件加密功能而闻名&#xff0c;Ping32 可以轻松保护您的文件&…

【JavaEE】——回显服务器的实现

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;引入 1&#xff1a;基本概念 二&#xff1a;UDP socket API使用 1&#xff1a;socke…

笔记||VUE3

侦听器 | Vue.js (vuejs.org) 模板引用 | Vue.js (vuejs.org)

R语言绘制散点图

散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具&#xff0c;我们通过不同的参数调整和包的使用&#xff0c;可以创建出满足各种需求的散点图。 常用绘制散点图的函数有plot()函数和ggpl…

SpringCloud学习记录|day4

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 网关 微服务下&#xff0c;好多不同地址和端口&#xff0c;而前端只知道8080&#xff0c;这怎么解决&…

《Programming from the Ground Up》阅读笔记:p217-p238

《Programming from the Ground Up》学习第11天&#xff0c;p217-p238总结&#xff0c;总计22页。 一、技术总结 1.C compiling p216, C compiling is split into two stages - the preprocessor and the main compiler。 注&#xff1a;感觉这个写法不好&#xff0c;因为p…

Java实体对象转换利器MapStruct详解

概述 现在的JAVA项目多数采用分层结构&#xff0c;参考《阿里巴巴JAVA开发手册》。 分层之后&#xff0c;每一层都有自己的领域模型&#xff0c;即不同类型的 Bean&#xff1a;  DO &#xff08; Data Object &#xff09; &#xff1a;与数据库表结构一一对应&#xff0c;…

acwing:1576. 再次树遍历

打卡一道有意义的题。 题签&#xff1a; 通过使用栈可以以非递归方式实现二叉树的中序遍历。 例如&#xff0c;假设遍历一个如下图所示的 66 节点的二叉树&#xff08;节点编号从 11 到 66&#xff09;。 则堆栈操作为&#xff1a;push(1); push(2); push(3); pop(); pop(); pu…

【HTML】defer 和 async 属性在 script 标签中分别有什么作用?

需要这两个属性的原因&#xff1f; 首先我们要知道的是&#xff0c;浏览器在解析 HTML 的过程中&#xff0c;遇到了 script 元素是不能继续构建 DOM 树的。 它会停止解析构建&#xff0c;首先去下载 js 代码&#xff0c;并且执行 js 的脚本&#xff1b;只有在等到 js 脚本执行…

AI训练 | 如何控制单篇文章不传给AI训练

随着生成式AI技术的普及&#xff0c;越来越多的企业开始使用AI工具来提升效率&#xff0c;但与此同时&#xff0c;关于AI训练的争议也越来越多。比如&#xff0c;2个月前字节跳动和WPS因为内容因为AI训练&#xff0c;引发了创作者的广泛讨论。这种对未经许可内容被“喂养”AI模…

draw.io创建自定义形状

Create custom shapes in draw.io using the text editor Reference draw怎么创建和编辑复杂的自定义形状 https://blog.csdn.net/u012028275/article/details/113828875 Create custom shapes in draw.io using the text editor