switch语句语法

转载 2013年12月02日 23:15:48
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语句进行实现。
小结
 if语句可以实现程序中所有的条件,switch语句特别适合一系列点相等的判别,结构显得比较清晰,而且执行速度比if语句要稍微快一些,在实际的代码中,可以根据需要来使用对应的语句实现程序要求的逻辑功能。

switch语句的用法详解

switch语句的用法详解C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达式) { case常量表达式1: 语句1; case常量表达式2:...
  • zwmwcj
  • zwmwcj
  • 2015年10月27日 13:54
  • 6084

c++ switch语句的使用(case 后面可以跟N个语句)

switch语句在处理多分支语句时是一种清晰结构(相比于一系列的if else if ...), 在一般书上的讲解时会给出如下的一般形式: switch(表达式){ case 常量表达式1:...
  • yums467
  • yums467
  • 2014年12月01日 21:14
  • 11170

switch case default 语句的的使用以及注意事项

首先我们来看一下它们基本的定义 switch(表达式) { case 取值1: 输出语句; break; 。。。。 default: 输出语句; break; } 上面的运行流程是这样的, 1.从sw...
  • HBL6016
  • HBL6016
  • 2014年12月22日 17:10
  • 14647

NET 中C#的switch语句的语法

NET 中C#的switch语句的语法 .NET 中C#的switch语句的语法如下(switch,case和default是关键字): switch ( controllingE...
  • autumn20080101
  • autumn20080101
  • 2016年02月16日 14:21
  • 297

switch case语句详解---连C++ Primer都会出现的语法错误

CSDN大牛较多,本人小白,若交流,本人欢迎,若言语偏颇,请绕行。 这二天,工作比较空闲,就看了一些基础的C++语法知识,收获颇多,下面只讲switch  case语句的一些语法细节。请大家坚持看完...
  • heihei36
  • heihei36
  • 2013年01月08日 18:50
  • 2819

iOS中switch case语句里面不能定义对象,有语法错误,除非加一个花括号

switch case语句里面不能定义对象,有语法错误,除非加一个花括号  2015-07-03 16:49 114人阅读 评论(0) 收藏 举报  分类: iOS(24...
  • sevenquan
  • sevenquan
  • 2015年12月30日 18:34
  • 1895

OpenJDK源码研究笔记(十一):浅析Javac编译过程中的抽象语法树(IfElse,While,Switch等语句的抽象和封装)

浅析OpenJDK源码编译器Javac的语法树包com.sun.source.tree。 抽象语法树,是编译原理中的经典问题,有点难,本文只是随便写写。...
  • FansUnion
  • FansUnion
  • 2013年11月03日 08:47
  • 3529

java学习之路 之 基本语法-程序流程控制-switch语句练习题

public class SwitchTest { public static void main(String[] args) { /* switch (变量) { 变量的数据类型必须...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016年07月23日 20:44
  • 2684

不经常用 居然会忘记 语法什么的!! switch… case 语句的用法

public class Test7 { public static void main(String[] args) { int i=5; sw...
  • YJB666
  • YJB666
  • 2014年06月04日 16:25
  • 456

java学习之路之基本语法-程序流程控制-switch语句练习题

switch(变量){ case 常量1: 语句1; break; case 常量2: 语句2; break; … … case 常量N: 语句N; break; default: 语句; break...
  • qintian888
  • qintian888
  • 2017年01月01日 21:26
  • 456
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:switch语句语法
举报原因:
原因补充:

(最多只允许输入30个字)