首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

为什么switchcase没有break不行

小姐姐接着问我为什么,我说少个break,但凡再问一句:为什么少个break结果就不一样,我就回答不出来了。所以,为了将尴尬扼杀于摇篮,还是研究一下break在switch作用。...System.out.println(2); } 运行代码,结果如下: *明明只匹配了case 0,为什么1和2也执行了?...从字节码可以看出:switchcase条件和对应代码块是分开。...如果case 0匹配成功,则跳到标号28执行,执行完代码块对应31、32指令之后,执行35goto指令跳转到标号55,这样就跳出了switch作用范围,case 1和2也不会被执行。...从字节码也可以看出if和switch区别:if条件和代码块字节码是顺序switch条件和代码块是分开;if自动生成goto指令,switch只有加了break才生成goto指令。

66720

一个switch case引起线上bug

当时第一反应是不可能 2、通过QA同学提供test case,在测试环境通过curl发送请求,发现果然广告返回值跟预期不符。 3、通过git log对比,发现近期只有一个switch语句有修改。...4、尝试在代码中加入log语句,发现日志输出果然跟QA错误结果一致,至此原因找到。...,也会执行 case 3部分,然后尝试在上面各个"do sth" 后面,加上break,结果符合预期,bug搞定。...深思 为什么在未增加新case之前,test case能通过呢?仔细找QA问了下case逻辑,原来,case每次都会返回bid_type = 2。...此处列下switch case三个规则:switch...case三个规则: 既无成功匹配,又无default子句,那么swtich语句块什么也不做; 无成功匹配,但有default,那么swtich

706140

知识扩展--if...else...与switch...case...执行原理if和switch原理

if功能是计算判断条件值,根据返回不同来决定跳转到哪个部分。值为真则跳转到if语句块中,否则跳过if语句块。...,jle表示当cmp得到结果≤0时会进行跳转,第二个if在汇编中跳转条件是>0,从这个上面可以看出在代码执行过程当中if转换条件判断语句与if判断结果时相反,也就是说cmp比较后不成立则跳转,...当某一条件满足时执行完对应语句后直接返回而不执行其后代码。一条提升效率做法是将最有可能满足条件放在前面进行比较,这样可以减少比较次数,提升效率。...2.3 总结 switch-case会生成一个跳转表来指示实际case分支地址,而这个跳转表索引号与switch变量值是相等。...由此看来,switch-case结构有一点以空间换时间意思,当分支较多时候明显switch-case结构实行效率会高很多。

1.3K30

一个switch case引起线上故障

当时第一反应是不可能 2、通过QA同学提供test case,在测试环境通过curl发送请求,发现果然广告返回值跟预期不符。 3、通过git log对比,发现近期只有一个switch语句有修改。...4、尝试在代码中加入log语句,发现日志输出果然跟QA错误结果一致,至此原因找到。...,也会执行 case 3部分,然后尝试在上面各个"do sth" 后面,加上break,结果符合预期,bug搞定。...深思 为什么在未增加新case之前,test case能通过呢?仔细找QA问了下case逻辑,原来,case每次都会返回bid_type = 2。...此处列下switch case三个规则:switch...case三个规则: 既无成功匹配,又无default子句,那么swtich语句块什么也不做; 无成功匹配,但有default,那么swtich

44520

返回结果 HTTP 状态码

返回结果 HTTP 状态码.png 返回结果 HTTP 状态码 状态码职责 当客户端向服务器端发送请求时,描述返回请求结果 状态码大致分类 1XX 信息性状态码 · 接收请求正在处理 2XX...204 No Content 该状态码代表服务器接收请求已成功处理,但在返回响应报文中不含实体主体部分 206 Partial Content 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分...该状态码表示请求资源已被分配了新 URI,以后应使用资源现在所指 URI。 302 Found 临时性重定向。...该状态码表示请求资源已被分配了新 URI,希望用户(本次)能使用新 URI 访问 303 See Other 该状态码表示由于请求对应资源存在着另一个 URI,应使用 GET 方法定向获取请求资源...HTTP 认证(BASIC 认证、DIGEST 认证)认证信息 403 Forbidden 该状态码表明对请求资源访问被服务器拒绝了 404 Not Found 该状态码表明服务器上无法找到请求资源

2.3K00
领券