判断和循环 - switch语句和练习

switch语句格式

switch(表达式) {case1:语句体1;break;case2:语句体2;break;...default:语句体n+1;break;
}
  • 执行流程:
  1. 首先计算表达式的值。
  2. 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会解释。
  3. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

请添加图片描述
请添加图片描述

代码演示

public class SwitchDemo1 {public static void main(String[] args) {//兰州拉面、武汉热干面、北京炸酱面、陕西油泼面//1.定义变量记录我心里想吃的面//2.拿着这个面利用switch跟四种面条匹配String noodles = "海鲜龙虾面";switch (noodles) {case "兰州拉面":System.out.println("吃兰州拉面");break;case "武汉热干面":System.out.println("吃武汉热干面");break;case "北京炸酱面":System.out.println("吃北京炸酱面");break;case "陕西油泼面":System.out.println("吃陕西油泼面");break;default:System.out.println("吃方便面");break;}}
}

练习

运动计划

需求:键盘录入星期数,显示今天的减肥活动。

周一:跑步

周二:游泳

周三:慢走

周四:动感单车

周五:拳击

周六:爬山

周日:好好吃一顿

代码实现

import java.util.Scanner;public class Test9 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入今天是星期几");String day = sc.next();switch (day) {case "周一":System.out.println("跑步");break;case "周二":System.out.println("游泳");break;case "周三":System.out.println("慢走");break;case "周四":System.out.println("动感单车");break;case "周五":System.out.println("拳击");break;case "周六":System.out.println("爬山");break;case "周日":System.out.println("好好吃一顿");break;default:System.out.println("狠狠地颓废一周");break}}
}
import java.util.Scanner;public class Test9 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入今天是星期几");int week = sc.nextInt();switch (day) {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("狠狠地颓废一周");break;}}
}

switch的扩展知识点和练习

1.default的位置和省略
/*default的位置和省略1.位置:default不一定是写在最下面的,我们也可以写在任意位置。只是习惯写在最下面2.省略:default可以省略,语法不会有问题,但是不建议省略。*/
public class SwitchDemo2 {public static void main(String[] args) {int number  = 100;switch (number) {case 1:System.out.println("number的值为1");break;case 10:System.out.println("number的值为10");break;case 20:System.out.println("number的值为20");break;/*default:System.out.println("number的值不是1,10或者20");break;*/}}
}
2.case穿透
/*case穿透:break省略了导致的。执行流程:首先还是会用小括号中表达式中的值与下面每一个case进行匹配;如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。如果没有发现break,那么程序会执行下一个语句体。一直直到遇到下一个break或者右大括号为止。*/
public class SwitchDemo3 {public static void main(String[] args) {int number = 10;switch (number) {case 1:System.out.println("number的值为1");break;case 10:System.out.println("number的值为10");//break;case 20:System.out.println("number的值为20");break;default:System.out.println("number的值不是1,10或者20");//break;}}
}

output

请添加图片描述

3.switch函数在JDK12之后的新特性。
//1.简化格式int number = 1;switch (number) {case 1 -> {System.out.println("一");}case 2 -> {System.out.println("二");}case 3 -> {System.out.println("三");}default -> {System.out.println("没有这种选项");}}
//2.如果{}中只有一行代码,可以省略大括号。int number = 1;switch (number) {case 1 -> System.out.println("一");case 2 -> System.out.println("二");case 3 -> System.out.println("三");default -> System.out.println("没有这种选项");}

其实,还可以对switch赋值变量去接收switch的结果,稍微有点难,在之后学完方法再来讨论。

/*switch新特性JDK12*/public class SwitchDemo4 {public static void main(String[] args) {//需求:// 1 2 3 一 二 三/*int number = 1;switch (number) {case 1:System.out.println("一");break;case 2:System.out.println("二");break;case 3:System.out.println("三");break;default:System.out.println("没有这种选项");break;}*//*int number = 1;switch (number) {case 1 -> {System.out.println("一");}case 2 -> {System.out.println("二");}case 3 -> {System.out.println("三");}default -> {System.out.println("没有这种选项");}}*/int number = 1;switch (number) {case 1 -> System.out.println("一");case 2 -> System.out.println("二");case 3 -> System.out.println("三");default -> System.out.println("没有这种选项");}}
}
4.switchif第三种格式各自的使用场景

练习

休息日和工作日

需求:键盘录入星期数,输出工作日、休息日。

(1-5)工作日,(6-7)休息日。

switch语句写法

import java.util.Scanner;public class Test10 {public static void main(String[] args) {/*需求:键盘录入星期数,输出工作日、休息日。(1-5) 工作日,(6-7)休息日。*///分析://1.键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入星期数");int day = sc.nextInt();//2.用switch语句进行选择switch (day) {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("再想想?");break;}

语句重复了,可以用case穿透简化代码!

//2.用switch语句进行选择switch (day) {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("再想想?");break;}

还可以进一步再简化

//2.用switch语句进行选择switch (day) {case 1,2,3,4,5: System.out.println("工作日");break;case 6,7: System.out.println("休息日");break;default:System.out.println("再想想?");break;}

emm,其实还能简化(利用JDK12新特性

//2.用switch语句进行选择switch (day) {case 1,2,3,4,5 -> System.out.println("工作日");case 6,7 -> System.out.println("休息日");default -> System.out.println("再想想?");}
机票业务
import java.util.Scanner;public class Test11 {public static void main(String[] args) {/*在实际开发中,如果我们需要在多种情况下选择其中一个,就可以使用switch语句当我们拨打了某些服务电话时,一般都会有按键选择。假设我们现在拨打了一个机票预定电话。电话中语音提示:1机票查询2机票预定3机票改签4退出服务其他按键也是退出服务。请使用switch模拟该业务逻辑。*///分析://1.键盘录入我们的选择Scanner sc = new Scanner(System.in);System.out.println("请输入数字获取服务");int number = sc.nextInt();//2.根据选择执行不同的代码逻辑switch (number) {case 1 -> System.out.println("机票查询");case 2 -> System.out.println("机票预定");case 3 -> System.out.println("机票改签");//case 4 -> System.out.println("退出服务");default -> System.out.println("退出服务");}}
}

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

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

相关文章

WordPress每天发布60s插件

源码名称:WordPress每天发布60s插件 适用平台:WordPress Wordpress还是比较适合个人博客网站,这个60秒插件适合一些喜欢自动发新闻早报晚报人员 喜欢的赶紧下手。找 万能工具箱合集 小程序即可找到资源

【UE Niagara】环绕在人物周围的闪电效果

效果 步骤 1. 首先下载一个螺旋形状的静态网格体并导入UE(地址:https://pan.baidu.com/s/1l9Bn5lQd7tDBu3CMs4c2aA?pwd7myr ) 2. 创建一个Niagara系统 使用Empty模板 这里命名为“NS_LightingAround” 打开“NS_LightingAround”&#xff0…

大礼包 - 华为机试真题题解

考试平台: 时习知 分值: 200分(第二题) 考试时间: 2024-01-31 (两小时) 题目描述 某公司针对新用户推出大礼包,从任意一天注册开始,连续登陆 x 天,每天可以领…

AES算法:数据传输的安全保障

在当今数字化时代,数据安全成为了一个非常重要的问题。随着互联网的普及和信息技术的发展,我们需要一种可靠的加密算法来保护我们的敏感数据。Advanced Encryption Standard(AES)算法应运而生。本文将介绍AES算法的优缺点、解决了…

Unity引擎学习笔记之【动画剪辑和曲线操作】

动画剪辑和曲线Animation Clip 点选一个包含动画的FBX模型,在其检查器中便可查看动画剪辑 一、动画剪辑 1.Model 2.RIg 538.jpg%20%3D600x&pos_idimg-st6QJc3x-1707050419493) 无动画、旧版Animation动画、普通道具或角色动画、人形角色动画 3.Animation 二…

【动态规划】【树形dp】【C++算法】968监控二叉树

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode:968监控二叉树 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所…

卷死同行!!CSDN博客中所有专栏支持24h无条件退款了。

现在找工作很卷、学习也很卷、做知识付费卖文章卖课也很卷。卷主要提现在内容质量上、内容数量上、售前咨询上(咱有专属客服)、售后服务上… 在CSDN既定的平台下,不能打折、不能设置优惠券、不能改价格、也没有退款按钮的情况下,如何去卷呢?…

[ChatGPT们】ChatGPT 如何辅助编程初探

主页:元存储的博客 全文 9000 字, 原创请勿转载。 我没有写过诗,但有人说我的代码像诗一样优雅 -- 雷军 图片来源:https://www.bilibili.com/video/BV1zL411X7oS/ 1. 引言 作为一个程序员,我们不仅要熟悉各种编程语…

智能决策的艺术:探索商业分析的最佳工具和方法

文章目录 一、引言二、商业分析思维概述三、数据分析在商业实践中的应用四、如何培养商业分析思维与实践能力五、结论《商业分析思维与实践:用数据分析解决商业问题》亮点内容简介作者简介目录获取方式 一、引言 随着大数据时代的来临,商业分析思维与实…

新年心愿清单怎么写 用这个软件列心愿清单更方便

新年的钟声在耳畔回荡,我站在窗前,看着外面熙熙攘攘的人群,心中充满了期待。新的一年,新的开始,我有很多心愿想要实现。于是,我决定写下一份心愿清单,给来年定下奋斗的方向。 但是,…

LLM应用开发与落地:使用gradio十分钟搭建聊天UI

一、背景 如果你是做LLM应用开发的,特别是做后端开发,你一定会遇到怎么快速写一个聊天UI界面来调试prompt或agent的问题。这时候的你可能在苦恼中,毕竟react.js, next.js, css, html也不是每个人都那么熟练,对吧?即使…

CSP-202309-2-坐标变换(其二)

一、遇到问题:迭代计算时间超限 按照常规思路,可以从begin到end逐步计算,共需要约end-begin次运算,时间复杂度较高,导致时间超限。 二、解决思路:累积 1.操作数累积部分 在输入阶段,代码通过…

springboot基于javaWEB的旅游推荐系统设计与实现+vue

随着人民生活水平的提高,对于旅游的需求越来越强烈。目前传统旅游的模式已经无法满足当前消费者的旅游需求。通过分析传统旅游的缺点,我们可以明确传统旅游业无法满足日益多元化的消费者。在消费者追求更加个性化的旅游体验之下,旅游网站就能…

布隆过滤器有什么用?什么原理?如何使用?

1 前言 布隆过滤器相信大家没用过的话,也已经听过了。 布隆过滤器主要是为了解决海量数据的存在性问题。对于海量数据中判定某个数据是否存在且容忍轻微误差这一场景(比如缓存穿透、海量数据去重)来说,非常适合。 2 什么是布隆…

AI大模型专题:OWASP大语言模型应用程序十大风险V1.0

今天分享的是AI大模型系列深度研究报告:《AI大模型专题:OWASP大语言模型应用程序十大风险V1.0》。 (报告出品方:OWASP) 报告共计:14页 LM01:2023_ 提示词注入 描述:提示词注入包括绕过过滤器…

云打印机怎么连接手机?

现在越来越多的人使用手机来办公或学习。而当我们需要打印文件时,如何用云打印机连接手机就非常重要了。易绘创云打印服务非常实用,那么易绘创云打印机又该怎么连接手机?下面就让我们一起来了解吧。 云打印机怎么连接手机? 当下云打印机连接…

SolidWorks 2023 使用操作流程

1. 把头 1.1. 新建零件 1.2. 新建草图 1.3. 拉升凸台 1.4. 等距实体 切换到锤头,新建草图,等距实体1mm 1.5. 拉升凸台 将上一个步骤的草图,进行特征拉升 1.6. 镜像处理 1.7. 圆角处理 1.8. 绘制凹槽 在锤子的侧面绘制草图 1.9. 挖出把手孔…

Opencv(C++)学习 TBB与OPENMP的加速效果实验与ARM上的实践(二)

在上一篇文章中,我们成功验证了Intel Threading Building Blocks (TBB) 与 OpenMP 在多线程并行处理方面的加速潜力。为了更深入地理解这些技术在实际应用场景中的效能提升,接下来我们将目光转向目标开发板环境,进一步探究这两种框架在嵌入式…

vulhub中spring的CVE-2022-22965漏洞复现

在JDK 9上运行的Spring MVC或Spring WebFlux应用程序可能存在通过数据绑定执行远程代码(RCE)的漏洞。 现在已知的利用方法要求应用程序以WAR部署的形式在Tomcat上运行,然而,该漏洞的性质更为普遍,可能有其他方法可以利…

[职场] 老教师对年轻教师的肺腑之言 #媒体#笔记

老教师对年轻教师的肺腑之言 对学生 不要拖堂!不要拖堂!不要拖堂!临下课十分钟,学生已经心不在焉,更别说下课后了!有什么内容等下节课再说,不连贯没关系,反正拖堂讲课他们更听不进去…