zoukankan      html  css  js  c++  java
  • switch分支语句

    语句句式

    		Calendar c = Calendar.getInstance();
            //获得一周的某天
            int i = c.get(Calendar.DAY_OF_WEEK);
            switch (i) {
                case 0:
                    System.out.println("星期日");
                    break;
                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;
                default:
                    System.out.println("星期六");
                    break;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    解释

    在 switch 语句中,会判断输入的值 (k)是多少,然后再判断该走那天语句,其中 break 是不能缺少的,以为它代表着一个判断的结束,如果没有 break ,经不能结束对应的 case 语句,继续向下走。
    defaulr 表示不是上面的任何判断,就走这个语句,当然也需要写 break

    switch支持和不支持的类型

    支持的类型

    1. int 类型
    2. short 类型
    3. byte 类型
    4. char 类型
    5. enum (枚举)类型 (java5.0 之后支持)
    6. String (java7.0之后支持)

    不支持的类型

    1. long 类型
    2. boolean 类型
    3. double 类型
    4. float 类型

    这里可以创建各个类型,带入 switch 语句进行验证。

    switch 的特殊用法

    		int year = 2020;
    		Scanner sc = new Scanner(System.in);
        	System.out.println("请输入月份");
            int month = sc.nextInt();
            int day = 31;
            switch (month) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    day = 31;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    day = 30;
                    break;
                case 2:
                	//判断这一年的2月有多少天
                    day = year % 100 != 0 && year % 4 == 0 || year % 400 == 0 ? 29 : 28;;
                    break;
            }
            System.out.println(month + "月有" + days + "天");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    以天数为例,每月的天数有一样的,也有不一样的,通过上述代码的形式,可以减少代码量,简化代码。这里是活用了 break 这个结束循环的语句。

    switch 的新功能(java 13之后的新功能)

    		Scanner sc = new Scanner(System.in);
            System.out.println("请输入月份");
            int month = sc.nextInt();
            int days = switch (month){
                case 1,3,5,7,8,10,12 -> 31;
                case 4,6,9,11 -> 30;
                //判断这一年的2月有多少天
                default -> year % 100 != 0 && year % 4 == 0 || year % 400 == 0 ? 29 : 28;
            };
            System.out.println(month + "月有" + days + "天");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果如下
    在这里插入图片描述
    注意:使用这个新功能,必须写 default ,否则会报错。
    java 13 之后的 switch 语句支持表达式形式,可以看到,比起之前的,代码简洁了许多,但是毕竟是新功能,并不常用,了解即可。

    原文章:https://blog.csdn.net/FBW_CSDN/article/details/112060095

  • 相关阅读:
    图解VS2008单元测试及查看代码覆盖率
    Effective C++:条款02:尽量以const, enum, inline替换#define (Prefer consts, enums, and inline to #defines.)
    Effective C++:条款01:视C++为一个语言联邦(View C++ as a federation of languages.)
    Effective C++:条款03:尽可能使用const (Use const whenever possible.)
    mysql foreign key <转>
    Linux下Apache绑定多个域名的方法 <转>
    python(1)input()和raw_input
    《精通CSS》读书笔记(1)
    CSS相对定位和绝对定位
    【分享】沪江网提供的每日一句API
  • 原文地址:https://www.cnblogs.com/tfil/p/14228302.html
Copyright © 2011-2022 走看看