大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。本篇文章通过我和三妹对话的形式来谈一谈“switch 语句”。

教妹学 Java,没见过这么有趣的标题吧?“语不惊人死不休”,没错,本篇文章的标题就是这么酷炫,接受不了的同学就别点进来看了,所谓好奇心害死猫;能够接受的同学我只能说你赚到了,你不仅能在阅读的过程中感受到思维的乐趣,还真的能学习到知识。下面就由我来介绍一下故事的背景吧。

我有一个漂亮如花的妹妹(见上图),她叫什么呢?我想聪明的读者朋友们都能猜得出:沉默王三,没错,年方三六。父母正考虑让她向我学习,做一名正儿八经的 Java 程序员。我期初是想反抗的,因为程序员这行业容易掉头发。但家命难为啊,与其反抗,不如做点更积极的事情,写点有趣的文章,教妹妹如何更快地掌握 Java 这门编程语言。毕竟程序员还算得上高薪(都是拿命换的啊)。

(铺垫结束,正文开始)

“二哥,今天我们来学习‘switch 语句’,对吧?”

“是的,三妹。Java 中的 switch 语句用来判断变量与多个值之间的相等性。变量的类型可以是 byte、short、int、long,或者对应的包装器类型 Byte、Short、Integer、Long,以及字符串和枚举。”

来看一下 switch 语句的格式:

switch(变量) {
case 可选值1:    // 可选值1匹配后执行的代码;    break;  // 该关键字是可选项
case 可选值2:    // 可选值2匹配后执行的代码;    break;  // 该关键字是可选项
......    default: // 该关键字是可选项     // 所有可选值都不匹配后执行的代码
}
  • 变量可以有 1 个或者 N 个值。

  • 值类型必须和变量类型是一致的,并且值是确定的。

  • 值必须是唯一的,不能重复,否则编译会出错。

  • break 关键字是可选的,如果没有,则执行下一个 case,如果有,则跳出 switch 语句。

  • default 关键字也是可选的。

画个流程图:

来个示例:

public class Switch1 {public static void main(String[] args) {int age = 20;switch (age) {case 20 :System.out.println("上学");break;case 24 :System.out.println("苏州工作");break;case 30 :System.out.println("洛阳工作");break;default:System.out.println("未知");break; // 可省略}}
}

输出:

上学

当两个值要执行的代码相同时,可以把要执行的代码写在下一个 case 语句中,而上一个 case 语句中什么也没有,来看一下示例:

public class Switch2 {public static void main(String[] args) {String name = "沉默王二";switch (name) {case "詹姆斯":System.out.println("篮球运动员");break;case "穆里尼奥":System.out.println("足球教练");break;case "沉默王二":case "沉默王三":System.out.println("乒乓球爱好者");break;default:throw new IllegalArgumentException("名字没有匹配项");}}
}

输出:

乒乓球爱好者

枚举作为 switch 语句的变量也很常见,来看例子:

public class SwitchEnumDemo {public enum PlayerTypes {TENNIS,FOOTBALL,BASKETBALL,UNKNOWN}public static void main(String[] args) {System.out.println(createPlayer(PlayerTypes.BASKETBALL));}private static String createPlayer(PlayerTypes playerType) {switch (playerType) {case TENNIS:return "网球运动员费德勒";case FOOTBALL:return "足球运动员C罗";case BASKETBALL:return "篮球运动员詹姆斯";case UNKNOWN:throw new IllegalArgumentException("未知");default:throw new IllegalArgumentException("运动员类型: " + playerType);}}
}

输出:

篮球运动员詹姆斯

本篇文章为《教妹学Java》专栏的第十四篇文章,是不是有趣得很?我相信你能感受的到,这可是全网独一份,我看到已经有人在模仿了。现在定价只需 9.9 元,9.9 元你连一杯奶茶都买不到,但却能买下二哥精心制作的专栏,据说 CSDN 已经考虑涨价了,毕竟已经卖出一百多份了。

我知道,购买专栏的同学都是冲着二哥的名声来的,毕竟二哥是 CSDN 的明星博主,哈哈。为表谢意,我再附送上个人微信(qing_geee),你有什么问题都可以来咨询。

上一篇回顾:教妹学Java(十三):if-else 语句详解

PS:本篇文章中的示例代码已经同步到码云,传送门~

原创不易,喜欢就点个赞,因为你一个小小的举动,就会让这个世界多一份美好。

教妹学Java(十四):switch 语句详解相关推荐

  1. 教妹学Java(十三):if-else 语句详解

    大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.本篇文章通过我和三妹对话的形式来谈一谈"if-else 语句". 教妹学 Java,没见过这么有趣的标题吧?& ...

  2. 教妹学Java(十九):continue 关键字详解

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 2019 年度的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我 ...

  3. 【Java技巧 第2章】Java中的switch语句详解

    文章目录 一.switch条件语句介绍 二.switch条件语句格式 1.格式 2.例子 3.扩展 三.更多了解

  4. 教妹学Java(二十二):来吧,一文彻底搞懂Java命名约定

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我还力求把每一个知 ...

  5. 教妹学Java(二十):一文带你彻底了解 Java 中的注释,干货了

    你好呀,我是沉默王二,一枚颜值与才华俱在的程序员.本篇教程通过我和三妹对话的形式来谈一谈"Java 中的注释". 教妹学 Java,没见过这么有趣的标题吧?"语不惊人死不 ...

  6. 教妹学Java(二十一):一文带你了解面向对象编程的所有概念

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我还力求把每一个 ...

  7. 教妹学Java(二十六):static 关键字解析

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十六篇,今天我们来谈谈 Java 的 static 关键字--什么是静态变量?什么是静态方 ...

  8. 教妹学Java(三十二):了解 Java 中的返回类型协变

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十七篇,今天我们来谈谈 Java 中的返回类型协变--Java 的返回值类型支持协变.换句 ...

  9. 教妹学Java(三十六):Java 多态的好处

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...

最新文章

  1. Visual C++ 2008入门经典 第九章类的继承和虚函数
  2. idea yml文件不变成树叶_springboot获取配置文件的三种方式
  3. ${ctx} 的那些事
  4. Keil(MDK-ARM-STM32)系列教程(七)菜单
  5. Linux man 命令后面的圆括号的意义
  6. 【数学建模】基于matlab三维数据可视化(华为杯)【含Matlab源码 139期】
  7. 骆驼壳修改服务器,【电视直播】发烧友TV,骆驼壳导入直播源教程,打造个人专属永久盒子软件,你们想看的这都有!...
  8. vue 前端打印pdf
  9. BlowFish算法Java实现
  10. 下行期的资本,正在追逐「猫品牌」
  11. 软件测试 (4)Linux命令
  12. idea、webstorm使用过程出现问题
  13. 广义相对论-学习记录5-第三章-张量分析与黎曼几何2
  14. python opencv gpu加速_让Python下的OpenCV也能GPU加速!part.1
  15. 计算机二级模板文档,江苏省计算机二级
  16. SQL查询——查询和和xxx同学所选课程完全一样的同学
  17. 红米k20 android版本,小米红米K20系统版本是多少?
  18. 2012年蓝盾杯信息安全竞赛小记
  19. 机械工业出版社计算机组成原理答案,计算机组成原理
  20. 爬虫与反爬虫(斗智斗勇)

热门文章

  1. ajax异步上传图片文件并将其转换为base64格式
  2. C++【C++11】
  3. 邓紫棋歌曲计算机音乐数字,邓紫棋播放量最高的十首歌曲
  4. python非线性可分支持向量机模型(实现iris分类)
  5. linux入门--磁盘管理之分区、格式化与挂载
  6. 基于Android的手机点名签到学生请假考勤系统
  7. 【舍友计划】恶搞~让计算机变卡变慢
  8. 随身wifi挑选要注意哪些问题才能避免上当
  9. Scrum团队: I-型人 vs T- 型人
  10. AliOS Things 编译体系