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 成员等,类本身的字节码是静态的:它会被所有的线程共享和是全区级别的: 属于共享内存区域,存储 ...
随机推荐
- mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化
原文:mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化 问题描述 mysql 5.7 innodb 引擎 使用以下几种方法进行统计效率差不 ...
- [PReact] Create a Hello World App with Preact
By creating a simple ‘hello world’ example application first in vanilla Javascript, and then in Prea ...
- MyBatis Generator插件之SerializablePlugin
org.mybatis.generator.plugins.SerializablePlugin 在generatorConfig.xml中加上配置: <plugin type="or ...
- iOS开发RunLoop学习:四:RunLoop的应用和RunLoop的面试题
一:RunLoop的应用 #import "ViewController.h" @interface ViewController () /** 注释 */ @property ( ...
- Web全栈工程师修养
全栈工程师现在是个很热的话题,如何定义全栈工程师?在著名的问答网站Quora上有人提出了这个问题,其中一个获得了高票的回答是: 全栈工程师是指,一个能处理数据库.服务器.系统工程和客户端的所有工作的工 ...
- Android 仿微信朋友圈点击图片变暗
package cn.eoe.leigo.view; import android.content.Context; import android.graphics.Bitmap; import an ...
- [Typescript] What is a Function Type ? Function Types and Interfaces - Are They Related ?
Function Type: type messageFn = (name: string) => string; function sayHello(name: string): string ...
- .net core 下的分布式事务锁
原文:.net core 下的分布式事务锁 目录 系统分布式锁的用法 锁的实现 锁的使用 API内的范例: 引用链接 系统分布式锁的用法 公司框架新增功能分布式锁: 锁的性能之王: 缓存 > Z ...
- 《图说VR》——HTC Vive控制器按键事件解耦使用
本文章由cartzhang编写,转载请注明出处. 全部权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53915229 作者:car ...
- Change Sudoers Mod 777 To 0440
Method 1: > grub --> recovery mode --> e > ro single <--> rw single init=/bin/bash ...