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

提示:

  1. 如果是2月份往后的月份,需要考虑当年是否是闰年
  2. 使用switch条件判断效率高
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请依次输入年月日");
    int year = scanner.nextInt();
    int month = scanner.nextInt();
    int day = scanner.nextInt();
    int sum = 0;//定义天数
    switch (month) {
        case 12:
            sum += 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:
            //判断是否是闰年,闰年2月份要加29天
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                sum += 29;
            } else {
                sum += 28;
            }
        case 2:
            sum += 31;
        case 1:
            sum += day;
            break;//比如输入1月份的第五天,就在1的自身加day,输入2月份的某一天,是1月份一整月加上2月份的day
    }
    System.out.println("是当前年的第" + sum + "天");
}
总结:
利用switch语句中case穿透的现象,当控制台输入天数后,由当月的天数加上前面每一个月的总天数,即是当年的天数。
除了1月份之外,每个月的sum加的都是前一个月的总天数。

java条件判断题:判断这一天是当年的第几天_switch语句

检查结果是否正确:

java条件判断题:判断这一天是当年的第几天_switch语句_02