java--switch-case的使用

package com.yl.pdfdemo.day01;

import java.util.Scanner;

/**
 * @Author wfj
 * @Date 2021/1/16
 * @Description switch-case的使用
 * @Version 1.0
 */

public class SwitchCaseTest {
    public static void main(String[] args) {
        /**
         * 分子结构二:switch-case
         *
         * switch(表达式) {
         *     case 常量1:
         *          执行语句1;
         *          break;
         *     case 常量2:
         *          执行语句2;
         *          break;
         *          .
         *          .
         *          .
         *      default:
         *          执行语句n
         *          break;
         * }
         * 说明:
         * 根据switch中的值与case的常量比较,如果相等就执行里面的代码块,这里注意:加break代表执行完相应的代码块之后就跳出switch
         * 如果不加break,当满足一个条件时,其下面的所有的case的常量都不会再与表达式作比较,而是直接执行它们的代码
         *
         * 注意:switch中的表达式只支持6中类型:byte short char int 枚举类型 String !!!!!!!!!!!!!!
         *所以:凡是可以用switch-case的地方,都可以用if-else来代替,反之不成立
         * 当case中多个常量所要执行的代码相同时,则可以合并常量值
         *
         *
         */

        int num = 3;
        switch (num) {
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            default:
                System.out.println("0");
                break;
        }

        //练习,判断是否合格
        int num1 = 78;
        switch (num1 /10) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("不及格");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
                System.out.println("及格");
                break;
        }

        //练习,通过键盘输入2020年的某一个月,和某一天,输出这一天是为2020年的第几天
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        System.out.println("请输入天:");
        int day = scanner.nextInt();

        int sumDay = 0;
//        //可以通过if-else来实现,不过太冗余
//        if (month == 1) {
//            sumDay = day;
//        } else if (month == 2) {
//            sumDay = 31 + day;
//        } else if (month == 3) {
//            sumDay = 31 + 28 +day;
//        }
//        ...........
//        else {
//            sumDay = .....
//        }
        //通过switch-case来实现
        switch (month) {
            case 12:
                sumDay += 30;
            case 11:
                sumDay += 31;
            case 10:
                sumDay += 30;
            case 9:
                sumDay += 31;
            case 8:
                sumDay += 31;
            case 7:
                sumDay += 30;
            case 6:
                sumDay += 31;
            case 5:
                sumDay += 30;
            case 4:
                sumDay += 31;
            case 3:
                sumDay += 28;
            case 2:
                sumDay += 31;
            case 1:
                sumDay += day;
        }
        System.out.println("2020年的"+month+"月"+day+"日是2020年的第"+sumDay+"天");

        //闰年的情况下
        System.out.println("请输入年份");
        int year = scanner.nextInt();
        System.out.println("请输入月份");
        int nMonth = scanner.nextInt();
        System.out.println("请输入天数");
        int nDay = scanner.nextInt();

        switch (month) {
            case 12:
                sumDay += 30;
            case 11:
                sumDay += 31;
            case 10:
                sumDay += 30;
            case 9:
                sumDay += 31;
            case 8:
                sumDay += 31;
            case 7:
                sumDay += 30;
            case 6:
                sumDay += 31;
            case 5:
                sumDay += 30;
            case 4:
                sumDay += 31;
            case 3:
                sumDay += 28;
                //判断是否是闰年
                //能被4整除且不能被100整除或者能被400整除
                if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                    sumDay += 29;
                } else {
                    sumDay +=28;
                }
            case 2:
                sumDay += 31;
            case 1:
                sumDay += day;
        }
        System.out.println(year+"年的"+nMonth+"月"+nDay+"日是2020年的第"+sumDay+"天");
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值