编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。\n\n注:(1)不能使用指针
时间: 2023-05-04 15:01:40 浏览: 87
题目要求使用switch语句编程,从键盘输入某年某月(包括闰年),用switch语句输出该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年有29天,已知闰年的2月29天,平年的2月28天。已知闰年的判定条件是:如果年份能被4整除但不能被100整除,或者能被400整除,则是闰年。已知题目给出的是2021年2月(含闰年),该月拥有29天。注意:(1)不能使用指针。
相关问题
编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天
在编程中,你可以通过使用`switch`语句结合条件判断来实现这个功能。首先,你需要获取用户输入的年份和月份,然后检查它是否属于合法范围(1到12)。接着,你可以编写一个针对各个月份的天数规则:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份(1-12):");
int month = scanner.nextInt();
// 检查输入合法性
if (month < 1 || month > 12) {
System.out.println("月份输入错误,只能选择1到12个月份.");
return;
}
switch (month) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
System.out.println(year + "年的" + month + "月共有31天.");
break;
case 4: // April
case 6: // June
case 9: // September
case 11: // November
System.out.println(year + "年的" + month + "月共有30天.");
break;
case 2: // February
if (isLeapYear(year)) { // 判断是否为闰年
System.out.println(year + "年的2月共有29天.");
} else {
System.out.println(year + "年的2月共有28天.");
}
break;
default:
System.out.println("出错了,无法识别的月份.");
break;
}
scanner.close();
}
// 判断是否为闰年
private static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}
```
当运行此程序时,它会提示用户输入年份和月份,然后根据用户输入计算并输出相应月份的天数。如果输入的月份超出范围或不是常规月份(如非2月的二月),程序会给出相应的错误消息。
参考习题5.5中判断闰年的方法,编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。
对于这个问题,你可以编写如下的程序来根据用户输入的年份和月份确定该月有多少天,同时考虑到闰年的特殊性。这里假设用户输入的是整数年份:
```python
def days_in_month():
year = int(input("请输入年份:"))
month = int(input("请输入月份 (1-12):"))
# 判断输入的月份是否合法
if month < 1 or month > 12:
print("输入的月份无效,请选择1-12之间的整数")
return
# 判断闰年
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
leap_year = True
else:
leap_year = False
switch_case = {
1: 31,
2: leap_year * 29 + (not leap_year) * 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31,
}
# 输出结果
print(f"{year}年的{month}月有 {switch_case[month]} 天")
days_in_month()
```
在这个函数中,我们首先检查月份的有效性,然后通过计算得出闰年的2月天数,并根据给定的月份索引从`switch_case`字典获取对应的天数。如果输入的年份不是闰年,2月会有28天;如果是闰年,2月则是29天。
阅读全文