练习-Java多路分支之月份天数计算

任务描述

本关任务:根据给定的年份和月份,获取该月份的天数。

提示:在求二月份的天数时,需要判断年份是否是闰年。闰年的条件是,年份是否能够被 400 整除,或者年份能够被 4 整除但是不能被 100 整除。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

参考答案

import java.util.Scanner;
/**
 * 任务:根据给定的年份和月份,获取该月份的天数。
 */
public class ApplicationTest {
    /**
     * 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        int day = 0;
        /********** Begin **********/
        // 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            day = 31;
        }
        // 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
        else if (month == 4 || month == 6 || month == 9 || month == 11) {
            day = 30;
        }
        // 第三步:如果以上条件都不满足,则进入最后一种情况
        else {
            // 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day
            if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
                day = 29;
            } else {
                day = 28;
            }
        }
        /********** End **********/
        System.out.print(year + "年" + month + "月有" + day + "天");
    }
}

使用switch

import java.util.Scanner;

/**
 * 任务:根据给定的年份和月份,获取该月份的天数。
 */
public class ApplicationTest {

    /**
     * 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        int day = 0;
        /********** Begin **********/
        // 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
		switch(month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day =31;
				break;

        // 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
			case 4:
			case 6:
			case 9:
			case 11:
				day =30;
				break;

        // 第三步:如果以上条件都不满足,则进入最后一种情况
			case 2:
				if(year%400==0 ||year%4==0&&year%100!=0) {
					day= 29;
				}else {
					day =28;
				}
		}
        // 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day


        /********** End **********/
        System.out.print(year + "年" + month + "月有" + day + "天");
    }
}

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,以下是练习-java多路分支月份天数计算的回复: 这个练习是要求我们编写一个Java程序,根据用户输入的月份计算出该月份有多少天。我们可以使用多路分支语句(if-else或switch-case)来实现这个功能。具体实现方法可以参考以下代码: ``` import java.util.Scanner; public class MonthDays { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入月份:"); int month = input.nextInt(); int days = ; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: System.out.print("请输入年份:"); int year = input.nextInt(); if ((year % 4 == && year % 100 != ) || year % 400 == ) { days = 29; } else { days = 28; } break; default: System.out.println("输入的月份不正确!"); break; } if (days != ) { System.out.println(month + "月份有" + days + "天。"); } } } ``` 以上代码中,我们首先使用Scanner类获取用户输入的月份,然后使用switch-case语句根据月份计算出该月份有多少天。在计算2月份天数时,我们还需要根据用户输入的年份来判断是否为闰年。最后,我们输出计算结果,如果用户输入的月份不正确,则输出提示信息。 希望这个回复能够帮助到您,如果还有其他问题,请随时联系我。 ### 回答2: Java多路分支Java编程中的一个重要部分,它通常用于判断某个条件或变量的值,然后执行相应的操作。在本文中,我们将介绍如何使用Java多路分支计算每个月的天数Java多路分支的基本语法是:if (条件) {执行语句块1} else if (条件2) {执行语句块2} else {执行语句块3}。使用这种语法,我们可以根据条件执行不同的操作。 对于月份天数计算,我们需要知道每个月的天数。通常,1月、3月、5月、7月、8月、10月和12月都有31天;4月、6月、9月和11月都有30天;2月有28或29天,具体取决于是否为闰年。 我们可以使用Java多路分支计算每个月的天数。我们可以使用一个int变量来表示月份,并根据1到12的不同值分别执行操作。我们可以使用一个switch语句来实现这个过程。 具体实现方法如下: 1. 定义一个int变量表示月份,例如int month = 5; 2. 使用switch语句根据月份计算天数,例如: switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("该月共有31天"); break; case 4: case 6: case 9: case 11: System.out.println("该月共有30天"); break; case 2: System.out.println("输入年份:"); Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { System.out.println("该月共有29天"); } else { System.out.println("该月共有28天"); } break; default: System.out.println("输入月份不合法"); break; } 在上述代码中,我们首先使用switch语句根据月份进行判断,然后根据不同的月份计算天数。对于2月份,我们需要使用Scanner类来获取用户输入的年份,然后判断是否为闰年,从而计算出2月的天数。 在实际编写Java代码时,我们需要注意一些细节。例如,在使用Scanner类时,我们需要先导入java.util.Scanner类;在使用switch语句时,我们需要添加break语句来跳出当前的case块。 总之,练习Java多路分支月份天数计算是一项基础而重要的练习。熟练掌握Java多路分支的使用方法,可以使我们更加高效地编写Java程序。 ### 回答3: 月份天数计算Java多路分支的一个经典练习,通过这个练习可以加深对Java多路分支语句的理解。下面我将介绍Java多路分支语句的概念以及如何实现月份天数计算Java多路分支语句 Java多路分支语句指的是在程序执行时,需要根据不同的条件执行不同的程序段的语句。Java多路分支语句有两种:switch语句和if-else语句。switch语句比if-else语句更清晰简洁,特别是当条件分支比较多时。switch语句的一般形式如下: ``` switch (expression) { case value1: // 语句块1 break; case value2: // 语句块2 break; case value3: // 语句块3 break; default: // 默认的语句块 break; } ``` 多路分支语句的实现原理是,程序先计算表达式的值,然后根据表达式的值跳转到指定的语句块。如果表达式的值与任何一个case的值相同,则执行相应的语句块,如果没有相同的值,则执行默认的语句块。 月份天数计算 对于月份天数计算,我们需要根据输入的月份判断该月份有多少天。一年中月份天数有两种情况:30天或31天,二月份则为28天或29天。因此,我们需要设计一个程序来判断输入月份具体是多少天。 下面是用Java多路分支实现月份天数计算的代码: ``` import java.util.Scanner; public class MonthDays { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入月份:"); int month = input.nextInt(); int days = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: System.out.print("请输入年份:"); int year = input.nextInt(); if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { days = 29; } else { days = 28; } break; default: System.out.print("月份输入错误!"); } if (days != 0) { System.out.println(month + "月份有" + days + "天!"); } } } ``` 上述代码中,我们使用switch语句来判断月份天数,如果月份在1、3、5、7、8、10、12这七个月中,那么该月份有31天,如果在4、6、9、11这四个月中,那么该月份有30天。对于2月份来说,需要再输入年份,然后根据闰年和平年计算出该月份天数。如果输入的不是1-12的整数,则提示月份输入错误。 总结 通过这个练习,我们不仅加深了对Java多路分支语句的理解,还学习了如何根据特定条件计算天数。在实际工作中,多路分支语句也常常用于判断不同的条件,进而执行不同的程序段,它在控制程序流程、提高代码的可读性上有很大的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值