java中的switch结构
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、 breakkeyword的意思是中断,指结束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语句要略微快一些,在实际的代码中,能够依据须要来使用相应的语句实现程序要求的逻辑功能。
java中的switch结构的更多相关文章
- Java初认识--Java中的语法结构
Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...
- Java中的选择结构(二)
选择结构(二) 学习本章会用到的单词: case:实例,情形,情况 switch:转换,切换,开关 default:系统默认值,违约,预设.缺省 exit:出口,通道,退出 consume:消耗,耗费 ...
- java中的Switch case语句
java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的 ...
- Java中的Switch用法
一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样), 在java1. ...
- Java中的switch语句后面的控制表达式的数据类型
Java中的switch语句后面的控制表达式的数据类型 1.byte 2.char 3.short 4.int 5.枚举类型 6.Java 7允许java.lang.String类型
- Java开发知识之Java中的Map结构
Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...
- tips:Java中的switch的选择因子
tips:Java中的switch的选择因子! /* switch(){ } */ switch的()中的判断条件能是什么类型呢? 事实上,在我们学习c++的了解中,switch的参数是一个能 ...
- java中的switch用String作为条件
在开发java程序的过程中,我们遇到了条件推断首选就是switch,可是java中的switch功能不支持字符串作为条件.这时我们该怎么办呢? --使用枚举. 一.枚举简单了解 1.enum是一 ...
- Java中JVM内存结构
Java中JVM内存结构 线程共享区 方法区: 又名静态成员区域,包含整个程序的 class.static 成员等,类本身的字节码是静态的:它会被所有的线程共享和是全区级别的: 属于共享内存区域,存储 ...
随机推荐
- 如何在电脑上播放iso映像文件
http://blog.sina.com.cn/s/blog_4a20485e0102e5ya.html
- python高级学习目录
1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...
- mysql mha高可用架构的安装
MMM无法全然地保证数据的一致性,所以MMM适用于对数据的一致性要求不是非常高.可是又想最大程度的保证业务可用性的场景对于那些对数据一致性要求非常高的业务,非常不建议採用MMM的这样的高可用性架构.那 ...
- Django之分页显示文章
1.项目:http://www.cnblogs.com/jasonhaven/p/7493422.html 2.任务描述:页面分页显示文章 3.源代码 后台: from django.core.pag ...
- toLocaleDateString()
在处理时间问题的时候,遇到了一个bug,关于toLocaleDateString()在不同浏览器下的解析结果. 代码如下 浏览器解析结果如下 可以看到谷歌,火狐等浏览器的输出结果是这种格式的 *201 ...
- svn: E200033: database is locked解决办法
svn执行update,却被告知database is locked! 执行 svn update,却抛出个错误警报: svn: E200033: database is locked, execut ...
- mui监听多个下拉刷新当前处于哪个选项卡
1.滑动触发 <div id="slider" class="mui-slider mui-fullscreen"> <div id=&quo ...
- springmvc中controller内方法跳转forward?redirect?
使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程. 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数 ...
- php如何实现读取网易有道词典输出单词的xml格式并且转化为html形式
php实现读取网易有道词典输出单词的xml格式并且转化为html形式 一.总结 一句话总结:将xml中的文件用preg_match_all读出来,然后组合成想要的数据 1.explode除了爆炸的意思 ...
- Hive的日期函数
1.unix时间戳转时间函数 语法: from_unixtime(bigint unixtime[, string format]) 返回值: string 说明: 转化UNIX时间戳(从1970-0 ...