编写一个Java程序,接受用户输入的一个1~122之间的整数(如果输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应月份的天数。
时间: 2024-09-15 16:08:35 浏览: 39
Java实现OJ多组测试数据的输入方法
5星 · 资源好评率100%
在Java中,你可以编写一个简单的控制台程序来实现这个功能。下面是一个示例代码:
```java
import java.util.Scanner;
public class MonthDays {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month;
System.out.println("请输入一个1到122之间的整数代表月份(1-12代表公历月,13-122代表农历月):");
while (!scanner.hasNextInt() || scanner.nextInt() < 1 || scanner.nextInt() > 122) {
System.out.println("输入错误,请重新输入一个1到122的整数:");
scanner.next(); // 清除上一次输入的无效字符
}
month = scanner.nextInt();
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: // 考虑闰年的情况
if (isLeapYear(scanner.nextInt())) {
System.out.println("2月有29天");
} else {
System.out.println("2月有28天");
}
break;
default:
System.out.println("输入的月份不存在,请确认输入的范围(1-122)");
break;
}
scanner.close();
}
// 检查是否为闰年,这里简化只考虑每4年一闰的情况
private static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}
```
在这个程序中,我们首先获取用户的输入,然后通过`switch`语句判断输入的月份并输出对应的天数。对于闰年的二月,我们额外检查了是否为闰年。当输入不符合要求时,会提示用户重新输入。
阅读全文