zoukankan      html  css  js  c++  java
  • Java编程—switch语句语法详解

    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语句要稍微快一些,在实际的代码中,可以根据需要来使用对应的语句实现程序要求的逻辑功能。

  • 相关阅读:
    博客园
    未释放的已删除文件
    ssh连接缓慢
    剑指 Offer 38. 字符串的排列
    剑指 Offer 37. 序列化二叉树
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 36. 二叉搜索树与双向链表
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 34. 二叉树中和为某一值的路径
    剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/langtianya/p/2870853.html
Copyright © 2011-2022 走看看