• 选择结构switch


    1.选择结构switch

      switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。例如,在程序中使用数字1~7来表示星期一到星期天,如果想根据某个输入的数字来输出对应中文格式的星期值,可以通过下面的一段伪代码来描述:

    用于表示星期的数字

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

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

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

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

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

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

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

      对于上面一段伪代码的描述,大家可能会立刻想到用刚学过得if…else if…else语句来实现,但是由于判断条件比较多,实现起来代码过长,不便于阅读。Java中提供了一种switch语句来实现这种需求,在switch语句中使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。具体实现代码如下:

    switch(用于表示星期的数字) {

        case 1 :

            输出星期一;

            break;

        case 2 :

            输出星期二;

            break;

        case 3 :

            输出星期三

            break;

        case 4 :

            输出星期四;

            break;

        case 5 :

            输出星期五;

            break;

        case 6:

            输出星期六;

            break;

        case 7:

            输出星期天;

            break;

    }

     

    上面改写后的伪代码便描述了switch语句的基本语法格式,具体如下:

    switch (表达式){

        case 目标值1:

            执行语句1

            break;

        case 目标值2:

            执行语句2

            break;

        ......

        case 目标值n:

            执行语句n

            break;

        default:

            执行语句n+1

            break;

    }

      在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的语句,如果没找到任何匹配的值,就会执行default后的语句。switch语句中的break关键字将在后面的做具体介绍,此处,我们只需要知道break的作用是跳出switch语句即可。

      需要注意的是,在switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其它类型的值,程序会报错。但上述说法并不严谨,实际上在JDK5.0中引入的新特性enum枚举也可以作为switch语句表达式的值,在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。

    2.选择结构switch练习

    接下来通过一个案例演示根据数字来输出中文格式的星期,如下所示。SwitchDemo01.java

    public class SwitchDemo01 {

        public static void main(String[] args) {

            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;

            }

        }

    }

    运行结果如图所示。

    上述代码中,由于变量week的值为5,整个switch语句判断的结果满足第17行的条件,因此打印“星期五”,例程中的default语句用于处理和前面的case都不匹配的值,将第3行代码替换为int week = 8,再次运行程序,输出结果如下图所示。

     

    在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。例如,要判断一周中的某一天是否为工作日,同样使用数字1~7来表示星期一到星期天,当输入的数字为1、2、3、4、5时就视为工作日,否则就视为休息日。接下来通过一个案例来实现上面描述的情况,如下所示。SwitchDemo02.java

    public class SwitchDemo02 {

        public static void main(String[] args) {

            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中任意一个值时,打印“今天是休息日”。

  • 相关阅读:
    去除字符串重复数据 分类: python基础学习 2013-08-08 17:43 171人阅读 评论(0) 收藏
    python中计时工具timeit模块的基本用法 分类: python python基础学习 2013-08-08 10:05 2072人阅读 评论(0) 收藏
    socket通信简介 分类: socket 2013-08-06 17:49 209人阅读 评论(0) 收藏
    AF_INET和PF_INET的细微不同 分类: socket 2013-08-06 17:35 264人阅读 评论(0) 收藏
    查看linux操作系统版本号 分类: ubuntu 2013-08-05 10:14 265人阅读 评论(0) 收藏
    python yield生成器 分类: python基础学习 2013-08-04 15:40 324人阅读 评论(0) 收藏
    html 元素 2013-08-04 14:53 236人阅读 评论(0) 收藏
    UTF8默认编码下的MYSQL命令框中输入汉字显示乱码的问题 分类: 测试 2013-08-02 14:16 371人阅读 评论(0) 收藏
    os.path模块学习 2013-07-30 17:46 193人阅读 评论(0) 收藏
    python 操作windows下的目录 分类: python python基础学习 2013-07-30 17:30 274人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/gaowc/p/10249589.html
Copyright © 2020-2023  润新知