• switch


    switch(变量){
    case 值1:

    case 值2:

    case 值3:

    default:

    }
    1.根据变量的值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句。如果没有break或者已经
    到结尾的话,会继续执行其下的case语句。
    2.default:是可选的,而且位置是灵活的。
    3.变量可以是哪些类型?char byte short int 枚举 String(jdk1.7)
    4.case 条件:其中条件只能是值,不能是取值范围!

    例1:输出春天

    class TestSwitch2 {
        public static void main(String[] args) {
    
            String season = "SPRING";
    
            switch (season) {
            case "SPRING":
                System.out.println("春天");
                break;
            case "SUMMER":
                System.out.println("夏天");
                break;
            case "AUTUMN":
                System.out.println("秋天");
                break;
            case "WINTER":
                System.out.println("冬天");
                break;
            default:
                System.out.println("输入有误");
                break;
    
            }
    
        }
    }

    例2:对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。

    说明:
    1.当多个case语句处理的语句块一致时,可以统一来书写
    2.一定情况下switch-case与if-else之间可以相互转换。

    class TestSwitch3 {
        public static void main(String[] args) {
            int score = 67;
            if (score >= 60) {
                System.out.println("及格");
            } else {
                System.out.println("不及格");
            }
            /*
             * switch(score){ case 100: ... case 0: default: }
             */
            switch (score / 10) {
            case 10:
            case 9:
            case 8:
            case 7:
            case 6:
                System.out.println("及格");
                break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                System.out.println("不及格");
                break;
            default:
                System.out.println("输入有误");
                break;
    
            }
    
        }
    }

    例3:从键盘上输入2014年的“month”和“day”,要求通过程序输出输入的日期为2014年的第几天

    import java.util.Scanner;
    
    class TestSwitch4 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入月份:");
            int month = s.nextInt();
            System.out.println("请输入日期:");
            int day = s.nextInt();
    
            int sum = 0;// 用来记录month月day日是2014年第几天
            // 使用switch-case
            switch (month) {
    
            case 12:
                sum += 30;// 30:十一月份的总天数
            case 11:
                sum += 31;
            case 10:
                sum += 30;
            case 9:
                sum += 31;
            case 8:
                sum += 31;
            case 7:
                sum += 30;
            case 6:
                sum += 31;
            case 5:
                sum += 30;
            case 4:
                sum += 31;
            case 3:
                sum += 28;
            case 2:
                sum += 31;// 31:是一月份的天数
            case 1:
                sum += day;
    
            }
    
            System.out.println(sum);
        }
    }

    如果不加break,代码会从那开始执行,一直执行到最后,所以不符合case的语句也会被执行。

    例4:从键盘分别输入年、月、日,判断这一天是当年的第几天

    import java.util.Scanner;
    class TestYearMonthDay{
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入年份:");
            int year = s.nextInt();
            System.out.println("请输入月份:");
            int month = s.nextInt();
            System.out.println("请输入日期:");
            int day = s.nextInt();
    
            int sum = 0;//用来记录year年month月day日是year年第几天
            //使用switch-case
            switch(month){
            
            case 12:
                sum += 30;//30:十一月份的总天数
            case 11:
                sum += 31;
            case 10:
                sum += 30;
            case 9:
                sum += 31;
            case 8:
                sum += 31;
            case 7:
                sum += 30;
            case 6:
                sum += 31;
            case 5:
                sum += 30;
            case 4:
                sum += 31;
            case 3:
                if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
                    sum += 29;
                }else{
                    sum += 28;
                }
            case 2:
                sum += 31;//31:是一月份的天数
            case 1:
                sum += day;
        
            }
            System.out.println(sum);
        }
    }
  • 相关阅读:
    字符串转数字,不用系统自带函数
    Hibernate事务与并发问题处理(乐观锁与悲观锁)【转】
    替代Oracle的minus写法
    随机算法
    获取在线时间 (Java Socket)
    在Asp.net中为用户控件(.ascx)添加自定义属性详解
    oracle查询多行数据合并成一行数据
    JS Math.sin() 与 Math.cos() 用法
    [BeiJing2006]狼抓兔子
    [HNOI2008]明明的烦恼
  • 原文地址:https://www.cnblogs.com/wangmengge/p/8630899.html
Copyright © 2020-2023  润新知