【答疑解惑】java中switch语句陷阱

语音版:

今天群中小伙伴们遇到了一个switch问题我给大家讲解一下,算是Java中的小陷阱吧。

Java中的switch语句穿透:

今天一同学写了类似下面的代码:

int a = 2; switch (a) { case 1: System.out.println(" 1 "); case 2: System.out.println(" 2 "); case 3: System.out.println(" 3 "); case 4: System.out.println(" 4 "); default: System.out.println(" default ");

不知道大家能否看出来这种写法是有问题的,因为每一个case都没有添加break,所以在执行的时候会出现穿透效果,按道理应该只执行a为2的case,可是case等于3、4和default都执行了,在编程中这种情况很低级,但是会有发生,请大家注意一下。一个比较好的习惯是在写case语句的时候先写一条case加上break,不写具体case中的逻辑,然后复制多个,再修改case,再编写每一条case的逻辑。

有不明白Java控制语句的同学可以查看我之前的文章,Java控制流程,里面详细的用图讲解了Java中各种控制语句的执行过程。

上面的代码输出结果:

2 3 4 default

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP实战技术

你应该这个姿势学习PHP(1)

  应用场景:能防止sql的注入(当然并不完全是可以,我们可以使用pdo进行预处理然后方式sql的注入,安全不能只靠一种方式防止事情的发生)

47616
来自专栏java架构师

C#泛型详解

我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多...

2706
来自专栏PHP实战技术

你应该这个姿势学习PHP(1)

1、addslashes addslasehes($string) 对字符串进行编译转义 应用场景:能防止sql的注入(当然并不完全是可以,我们可以使用pdo...

37210
来自专栏ShaoYL

深刻理解----修饰变量----关键字

32611
来自专栏大数据架构

Java进阶(一)Annotation(注解)

Annotation是Java5开始引入的特性。它提供了一种安全的类似于注释和Java doc的机制。实事上,Annotation已经被广泛用于各种Java框架...

4127
来自专栏WindCoder

《简明 Python 教程》学习笔记-函数

回来后,重心一直放在地方站那边了,这边只是偶尔回来看看同时回复一下大家的留言,这两天可以放松一下心神,让自己静静,考虑码码字的问题,python在假期过后就没看...

291
来自专栏linux驱动个人学习

typeof关键字的作用

一、typeof详解: 前言:     typeof关键字是C语言中的一个新扩展,这个特性在linux内核中应用非常广泛。(其实这和C++的auto关键字和可以...

3055
来自专栏xingoo, 一个梦想做发明家的程序员

addLoadEvent方法解析

onload方法在网页加载完毕时,会自动执行,但是该方法有个缺点就是只能执行一个方法。   onload的限制   比如下面的代码: <s...

1729
来自专栏西枫里博客

Python学习笔记五(列表和元组)

最近这段时间是一年中最忙的时候,学习进度严重耽误,距离上一次更新Python的学习进度又已经一个月过去了,“佩服”我自己。趁着假期,继续学习我的Python,顺...

591
来自专栏无所事事者爱嘲笑

react-native flatlist 上拉加载onEndReached方法频繁触发的问题

2502

扫描关注云+社区