天天看点

C++程序员学Java系列之十一:流程控制语句switch,case,break,default

选择结构switch

switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。

例如,在程序中使用数字1~7来表示星期一到星期天,如果想根据某个输入的数字来输出对应中文格式的星期值,可以通过下面的一段伪代码来描述:

用于表示星期的数字

如果等于1,则输出星期一

如果等于2,则输出星期二

如果等于3,则输出星期三

如果等于4,则输出星期四

如果等于5,则输出星期五

如果等于6,则输出星期六

如果等于7,则输出星期天

对于上面一段伪代码的描述,大家可能会立刻想到用if…else if…else语句来实现,但是由于判断条件比较多,实现起来代码过长,不便于阅读。

Java中提供了一种switch语句来实现这种需求,在switch语句中使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目

标值匹配时,会执行对应case下的语句。具体实现代码如下:

int week = 5;
switch (week) {
case 1:
    System.out.println("星期一");
    break;
case 2:
    System.out.println("星期二");
    break;
case 3:
    System.out.println("星期三");
    break;
case 4:
    System.out.println("星期四");
    break;
case 5:
    System.out.println("星期五");
    break;
case 6:
    System.out.println("星期六");
    break;
case 7:
    System.out.println("星期天");
    break;
default:
    System.out.println("输入的数字不正确...");
    break;
}
           

同时switch语句还有穿透特性

例如,要判断一周中的某一天是否为工作日,同样使用数字1~7来表示星期一到星期天,当输入的数字为1、2、3、4、5时就视为工作日,否则就视为休息日。

代码如下:

int week = 2;
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
    // 当 week 满足值 1、2、3、4、5 中任意一个时,处理方式相同
    System.out.println("今天是工作日");
    break;
case 6:
case 7:
    // 当 week 满足值 6、7 中任意一个时,处理方式相同
    System.out.println("今天是休息日");
    break;
}
           

上述代码中,当变量week值为1、2、3、4、5中任意一个值时,处理方式相同,都会打印“今天是工作日”。同理,当变量week值为6、7中任意一个值时,打印“今天是休息日”。