使用switch计算出某年某月某日是今年的第几天,输出一直是当月天数

Posted pengsulong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用switch计算出某年某月某日是今年的第几天,输出一直是当月天数相关的知识,希望对你有一定的参考价值。

package com.cx.Switch;

import java.util.Scanner;

/**
 * 计算出某年某月某日是今年的第几天
 * 使用switch
 */
public class SwitchDemo {
    public static void  main(String[] args){
        Scanner scanner=new Scanner(System.in);

        int sumDays=0;
        System.out.println("年:");
        int year=scanner.nextInt();
        System.out.println("月:");
        int month=scanner.nextInt();
        System.out.println("日:");
        int day=scanner.nextInt();

        switch(month){
            case 12:
                sumDays+=30;
            case 11:
                sumDays+=31;
            case 10:
                sumDays+=30;
            case 9:
                sumDays+=31;
            case 8:
                sumDays+=31;
            case 7:
                sumDays+=30;
            case 6:
                sumDays+=31;
            case 5:
                sumDays+=30;

            case 4:
                sumDays+=31;
            case 3:
                if((year%4==0&&year%10!=0)||(year%400==0)){
                    sumDays+=29;
                }else {
                    sumDays+=28;
                }
            case 2:
                sumDays+=31;

            case 1:
                sumDays=day;

        }
        System.out.println(year+"年"+month+"月"+day+"日"+"是当年的第");
        System.out.println(sumDays+"天");
    }
}

输出结果一直是day,调试发现执行51行时候sumDays是181

技术图片

 

 

 

 

 

 但是继续下一步发现

技术图片

 

 发现把case1 :sumDays=day改成即可,

           case 1:
                sumDays+=day;

 sumDays+=sumDays------>sumDays=sumDays+day;sumDays是上一步的sumDays结果,不是0;

以上是关于使用switch计算出某年某月某日是今年的第几天,输出一直是当月天数的主要内容,如果未能解决你的问题,请参考以下文章

编程输入某年某月某日(正确日期),判断这一天是这一年的第几天?请用switch语句以及累加法完成。

输入某年某月某日,判断这一天是这一年的第几天?

输入某年某月某日,判断这一天是这一年的第几天?

输入某年某月某日,判断这一天是这一年的第几天?

输入某年某月某日,判断这一天是这一年的第几天。

输入某年某月某日,判断这一天是这一年的第几天