编写一个Java程序,接受用户输入的一个1~12之间的整数(如果输入的数据不满这个条件,则要求用户重新输入),利用switch语句输出对应月份的天数。
时间: 2024-09-17 21:05:15 浏览: 63
当你编写一个Java程序来实现这个功能时,可以按照以下步骤操作:
```java
import java.util.Scanner;
public class MonthDays {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 循环接收用户的输入直到满足条件
while (true) {
System.out.println("请输入一个1到12之间的整数代表月份:");
int month = scanner.nextInt();
// 使用switch语句检查输入的月份并输出对应的天数
switch (month) {
case 1:
System.out.println("一月有31天");
break;
case 2:
if (isLeapYear(scanner.nextInt())) { // 判断闰年情况
System.out.println("二月有29天");
} else {
System.out.println("二月有28天");
}
break;
case 3:
System.out.println("三月有31天");
break;
case 4:
System.out.println("四月有30天");
break;
case 5:
System.out.println("五月有31天");
break;
case 6:
System.out.println("六月有30天");
break;
case 7:
System.out.println("七月有31天");
break;
case 8:
System.out.println("八月有31天");
break;
case 9:
System.out.println("九月有30天");
break;
case 10:
System.out.println("十月有31天");
break;
case 11:
System.out.println("十一月有30天");
break;
case 12:
System.out.println("十二月有31天");
break;
default:
System.out.println("输入错误,请重新输入1到12之间的月份");
}
// 如果输入合法,跳出循环
if (month >= 1 && month <= 12) {
break;
}
}
scanner.close();
}
// 辅助函数判断是否为闰年,这里简化处理,只考虑公历年份
private static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}
```
在这个程序中,我们首先获取用户输入的月份,然后使用`switch`语句根据输入值输出相应的天数。对于二月,我们还需要额外检查是否为闰年。
阅读全文