当前位置: 首页 > news >正文

商务网站创建方案网站优化推广招聘

商务网站创建方案,网站优化推广招聘,怎么做网页设计怎么插入图片,域名网站这么做Case逢无意难休——深度解析JAVA中case穿透问题~ 不作溢美之词,不作浮夸文章,此文与功名进取毫不相关也!与大家共勉!! 更多文章:个人主页 系列文章:JAVA专栏 欢迎各位大佬来访哦~互三必回&#…

Case逢无意难休——深度解析JAVA中case穿透问题~

不作溢美之词,不作浮夸文章,此文与功名进取毫不相关也!与大家共勉!!
更多文章:个人主页
系列文章:JAVA专栏
欢迎各位大佬来访哦~互三必回!!!

在这里插入图片描述

#引言

我们在学习JAVA时,switch语句是一种常见的分支结构,它可以根据表达式的值来选择执行不同的语句。然而,我们在写代码运用switch分支时经常遇到一个问题——case穿透。今天我们从执行原理产生原因代码实现等方面,来理解什么是case穿透?如何避免case穿透?如何利用case穿透?

#JAVA中switch执行原理

1.代码实现:

switch(表示值){case1 :语句体1;break ;case2:语句体2;break ;....default :语句体 n+1 ;break ;
}

2.执行流程

  • 首先计算表达式的值
  • 一次和case后面进行比较,如有对应值,就会执行相应语句,在执行的过程中,遇到break会结束。
  • 如果所有的case后面和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

3.流程图解

在这里插入图片描述swtich流程图

4.格式说明:

  • 表达式:(将要匹配的值)取值为byte,short,int,char,JDK5以后可以是枚举,JDK7以后的可以是String.
  • case:后面跟的是要和表达式进行比较的值(被匹配的值)
  • break:表示中断,结束的意思,用来结束swtich语句
  • default:表示所有情况下都不匹配的时候,就执行该处的内容和if语句的else相似
  • case后面的值只允许是字面量
  • case给出的值不允许重复

#什么是case穿透

要理解 case 穿透,我们首先得清楚 switch 语句的基本结构。switch 语句通过一个表达式的值与多个 case 标签后面的值进行比较,当匹配成功时,就会执行该 case 块中的代码。而 case 穿透指的是,当 switch 语句匹配到某个 case 后,如果该 case 块中没有 break 语句,程序不会停止执行,而是会继续执行下一个 case 块中的代码,直到遇到 break 或者 switch 语句结束。

#case穿透产生原因

switch 语句中,break 语句的作用是终止当前 switch 语句的执行。当没有 break 语句时,程序就会按照顺序依次执行后续 case 块中的代码。这是因为 switch 语句的设计初衷是为了在多个条件中进行选择,但并没有强制要求每个 case 块都必须有 break,所以就产生了 case 穿透这种情况。

#案例演示

下面通过一个简单的代码示例来直观地展示 case 穿透现象:

public class Example {public static void main(String[] args) {int day = 2;switch (day) {case 1:System.out.println("星期一");case 2:System.out.println("星期二");case 3:System.out.println("星期三");default:System.out.println("其他日期");}}
}

在这个示例中,day 的值为 2,程序会从 case 2 开始执行,输出 “星期二”。由于 case 2 块中没有 break 语句,程序会继续执行 case 3 块中的代码,输出 “星期三”,最后执行 default 块中的代码,输出 “其他日期”。所以最终的输出结果是:

星期二
星期三
其他日期

#利用case穿透

虽然 case 穿透有时候会带来一些意想不到的结果,但在某些特定的场景下,我们可以巧妙地利用它来简化代码。例如,我们要根据不同的月份判断该月所属的季节,就可以使用 case 穿透:

public class SeasonExample {public static void main(String[] args) {int month = 3;switch (month) {case 12:case 1:case 2: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("无效的月份");}}
}
春季

在这个示例中,我们利用 case 穿透,将属于同一个季节的月份写在一起,当 month 的值匹配到某个月份时,程序会继续执行后续的 case 块,直到遇到 break 语句,这样就可以避免重复的代码。

#case穿透带来的问题

在大多数情况下,case 穿透并不是我们想要的结果,它可能会导致程序出现逻辑错误。为了避免这种情况,我们需要在每个 case 块中都添加 break 语句,确保程序在执行完匹配的 case 块后就停止执行。例如:

public class AvoidFallThrough {public static void main(String[] args) {int number = 1;switch (number) {case 1:System.out.println("数字是 1");break;case 2:System.out.println("数字是 2");break;case 3:System.out.println("数字是 3");break;default:System.out.println("未知数字");}}
}
数字是1

在这个示例中,每个 case 块都有 break 语句,当 number 的值为 1 时,程序只会执行 case 1 块中的代码,输出 “数字是 1”,然后就会终止 switch 语句的执行。

#总结

case 穿透是 Java 中 switch 语句的一个特殊特性,它既有可能带来便利,也可能导致程序出现逻辑错误。我们需要深入理解它的原理,在合适的场景下利用它来简化代码,同时在不需要它的时候通过添加 break 语句来避免潜在的问题。通过对 case 穿透的正确使用和处理,我们可以让 switch 语句在我们的程序中发挥出更大的作用。

希望通过本文的介绍,你对 Java 中的 case 穿透现象有了更深入的理解。在实际编程中,要时刻注意 break 语句的使用,确保程序的逻辑正确性。
在这里插入图片描述

感谢阅读!您的支持是我更新的最大动力!!

往期高分文章:
java之小六壬算命代码实现——预知自己命运如何!
AIGC | Midjourney使用指南,直接拿捏~
CMD常用命令符大全,提高办公效率(值得收藏)

更多文章欢迎关注文章主页:个人主页

http://www.tj-hxxt.cn/news/6397.html

相关文章:

  • 用html做卖珠宝的网站公司网站免费建站
  • 福州如何做百度的网站百度推广app下载官方
  • 做职业规划的网站郑州关键词排名顾问
  • 湛江专业建站推广机构营销宣传图片
  • 家装公司需要装修资质吗杭州seo培训
  • 网站首页广告教育培训机构排名前十
  • 有交做拼多多网站的吗哪个搜索引擎最好
  • 个人网站做淘宝客犯法吗nba中国官方网站
  • 百科网站开发西安网站定制开发
  • 青岛企业网站seo技巧安阳seo
  • 做网站平台难在哪里合肥网站优化推广方案
  • 有限公司和公司的区别深圳seo公司助力网络营销飞跃
  • 网站开通流程不受国内限制的浏览器
  • 做土特产的网站有哪些阿里巴巴国际站运营
  • 企业网站建设需要什么百度网盘app怎么打开链接
  • 网站开发合作合同网站建设制作专业
  • 国际国内新闻最新消息今天云优化软件
  • 汕头市网站建设公司域名注册费用
  • 网站开发主要包括的事项百度seo规则
  • 网站策划包括什么电商引流推广方法
  • 做的网站用户密码在哪里找如何开展网络营销活动
  • 无锡网站制作8汕头seo按天付费
  • 乐清网络网站建设公司网站制作费用
  • 衢州网站建设找哪家谷歌seo 优化
  • 房天下怎样快速做网站肇庆seo优化
  • 网上的彩票网站是怎么做的同城推广引流平台
  • 做网站租空间百度免费发布信息
  • 中国网站备案信息查询网络广告营销对应案例
  • 做网站的是干嘛的广西壮族自治区免费百度推广
  • 做水果网站弄个什么名字网站搭建教程