5.3.2 switch语句

switch关键字的中文意思是开关、转换的意思,switch语句在条件语句中特别适合做一组变量相等的判断,在结构上比if语句要清晰很多。

switch语句的语法格式为:

switch(表达式){

case 值1:

功能代码1;

[break; ]

case 值2:

功能代码2;

[break; ]

……

default:

功能代码1;

[break; ]

}

语法说明:

1、 表达式的类型只能为byte、short、char和int这4种之一。

2、 值1、值2…值n只能为常数或常量,不能为变量。

3、 功能代码部分可以写任意多句。

4、 break关键字的意思是中断,指结束switch语句,break语句为可选。

5、 case语句可以有任意多句,是标号语句。

6、 default语句可以写在switch语句中的任意位置,功能类似于if语句中的else。

执行流程:当表达式的值和对应case语句后的值相同时,既从该位置开始向下执行,一直执行到switch语句的结束,在执行中,如果遇到break语句,则结束switch语句的执行。

则在if-else if-else语句中,根据月份获得每个月的天数,不考虑闰年,的示例代码如下:

int month = 10;

int days = 0;

switch(month){

case 1:

days = 31;

break;

case 2:

days = 28;

break;

case 3:

days = 31;

break;

case 4:

days = 30;

break;

case 5:

days = 31;

break;

case 6:

days = 30;

break;

case 7:

days = 31;

break;

case 8:

days = 31;

break;

case 9:

days = 30;

break;

case 10:

days = 31;

break;

case 11:

days = 30;

break;

case 12:

days = 31;

break;

}

System.out.println(days);

根据switch语句的语法,该代码也可以简化为如下格式:

int month = 10;

int days = 0;

switch(month){

case 2:

days = 28;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

default:

days = 31;

}

System.out.println(days);

代码说明:因为switch语句每次比较的是相等关系,所以可以把功能相同的case语句合并起来,而且可以把其他的条件合并到default语句中,这样可以简化case语句的书写。该代码的结构比最初的代码简洁很多了。

虽 然在语法上switch只能比较相等的结构,其实某些区间的判别也可以通过一定的变换使用switch语句进行实现。例如if-else if-else语句示例中的分数转换的示例,则分数的区间位于0-100之间,如果一个一个的去比较,case语句的数量会比较多,所以可以做一个简单的 数字变换,只比较分数的十位及以上数字,这样数字的区间就缩小到了0-10,则实现的代码如下:

int score = 87;

switch(score / 10){

case 10:

case 9:

System.out.println(‘A’);

break;

case 8:

System.out.println(‘B’);

break;

case 7:

System.out.println(‘C’);

break;

case 6:

System.out.println(‘D’);

break;

default:

System.out.println(‘E’);

}

当然,switch语句不是很适合进行区间的判别,更多的区间判别一般还是使用if-else if-else语句进行实现。

5.3.3 小结

if语句可以实现程序中所有的条件,switch语句特别适合一系列点相等的判别,结构显得比较清晰,而且执行速度比if语句要稍微快一些,在实际的代码中,可以根据需要来使用对应的语句实现程序要求的逻辑功能。

switch java 语法_Java编程—switch语句语法详解相关推荐

  1. java if 用法详解_Java if判断语句用法详解

    Java if判断语句用法详解 if关键字中文意思是如果,其细致的语法归纳来说总共有三种:if语句.if-else语句和if-else if-else语句,下面重点介绍if语句. if语句 语法 if ...

  2. java编程50实例_java编程实例大全及详解谜底(50例).doc

    java编程实例大全及详解谜底(50例).doc 还剩 33页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 谓 ...

  3. java 复合_Java复合语句的使用方法详解

    与 C 语言及其他语言相同, Java 语言的复合语句是以整个块区为单位的语句,所以又称为块语句.下面我们来看看有关复合语句的使用方法和实例. 复合语句由开括号"{"开始,闭括号& ...

  4. java中流_Java中流的有关知识点详解

    Java中流的有关知识点详解 发布时间:2020-09-17 03:50:59 来源:脚本之家 阅读:103 作者:mumu1998 什么是流? 流:程序和设备之间连接起来的一根用于数据传输的管道,流 ...

  5. java 深拷贝_java 深拷贝与浅拷贝机制详解

    java 深拷贝与浅拷贝机制详解 概要: 在Java中,拷贝分为深拷贝和浅拷贝两种.java在公共超类Object中实现了一种叫做clone的方法,这种方法clone出来的新对象为浅拷贝,而通过自己定 ...

  6. 希尔排序基础java代码_java 算法之希尔排序详解及实现代码

    摘要:这篇Java开发技术栏目下的"java 算法之希尔排序详解及实现代码",介绍的技术点是"希尔排序详解.实现代码.希尔排序.Java.实现.代码",希望对大 ...

  7. java 搜索_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  8. csdn java社区_java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  9. java装饰模式_Java装饰者模式实例详解

    本文实例讲述了Java装饰者模式.分享给大家供大家参考,具体如下: 装饰模式 在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 装 ...

最新文章

  1. python 查看函数调用栈
  2. mysql安装笔记190914
  3. 【Flink】FLink 1.12 版本的 Row 类型 中的 RowKind 是干嘛的
  4. HBase 完全分布式的安装
  5. Linux 使用 shell 脚本处理字符串
  6. C语言:动态爱心代码
  7. unity3d 取锚点位置_天涯明月刀手游草鱼在哪里钓 天涯明月刀草鱼位置及|天涯|明月-游戏资讯...
  8. 计算机基础知识刷题app,计算机考试刷题app
  9. 并联机构工作空间求解_结构计算软件—结构力学求解器
  10. Myeclipse中编辑Jsp时解决光标乱跑的方法
  11. 润乾报表统计图各属性功能介绍
  12. vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)...
  13. 笔记本外接显示器之后扩展屏分辨率问题
  14. 有关爬虫加载Ajax数据或请求json数据集的(快速高效)方法
  15. 云计算的定义是什么?
  16. 一探B站后台架构, 他山之石, 何以攻玉? -- 仅从一个一线Golang开发者的角度谈B站4.22代码
  17. 首届.NET Core开源峰会 2018年5月20日
  18. html 下拉组件被下面的组件挡住,div被select下拉框挡住了--5种解决方法
  19. IDC:2017年第一季度全球企业存储市场保持平稳
  20. 树莓派linux系统识别u盘启动,树莓派3 U盘启动方案

热门文章

  1. 一站式快速自助建站-超低价0代码建站套餐助你轻松拥有自己的网站
  2. AI 云原生浅谈:好未来 AI 中台实践
  3. 免费下载 | 全景揭秘阿里文娱智能算法
  4. android 图片长方形_android 相机只拍摄矩形区域图片
  5. 微软出品 Kubernetes 最新学习指南 v3.0
  6. 《堡垒之夜》中你可能没注意到的设计
  7. 《消逝的光芒》为何能成为Steam热销榜常客 ?
  8. ORACLE 10G以后的ORDER BY操作优化
  9. 解决win2003远程桌面只能最多连接2个用户的问题
  10. Condition中的transferForSignal()方法的不解