【案例需求】
根据输入年和月确定该月的天数
【案例分析】
1月、3月、5月、7月、8月、10月、12月有31天,4月、6月、9月、11月有30天,2月天数根据年份来确定,闰年29天,平年28天。用输入的月份值和1-12数值做匹配,得到对应的天数。选用switch语句实现,并结合case穿透,由于多个case语句体重复,考虑使用case穿透简化代码。在输入值为2(即2月份)的情况下,要判断年份是否为闰年来确定天数。
闰年:能被四整除的”不逢百之年“为闰年;能被400整除的是闰年
平年:不能被4整除的是平年;不能被400整除的”逢百之年“
【代码实现】
import java.util.Scanner;
public class Exe {
public static void main(String[] args) {
//声明变量year用于存储年份数据
int year;
//声明变量month用于存储月份数据
int month;
//1.键盘录入年份和月份
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
year = sc.nextInt();
System.out.println("请输入月份:");
month = sc.nextInt();
//2.利用switch语句进行选择
switch (month) {
case 2 :
//如果输入月份为2月,则先判断是否为闰年
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
//闰年有29天
System.out.println("29天");
}else {
//平年有28天
System.out.println("28天");
}
break;
//1月、3月、5月、8月、10月、12月有31天
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
//4月、6月、9月、11月有30天
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
//如果输入的月份和上面case子句的值没有匹配上,则代表月份输入错误
default:
System.out.println("输入月份不正确");
}
}
}