1)输入年份如2016;做合法性判断,如果输入不正确,重新输入,直到输入正确的年份
(2)接着输入月份如2;做合法性判断,如果输入不正确,重新输入,直到输入正确的月份
(3)打印出2016年是闰年,2月有29天
(4)重复的年份和月份的查询,提示用户是否继续查询,yes继续查询,no查询停止。
参考下思路
import java.util.Scanner;
public class LeapYearAndDaysInMonth {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = "yes";
while (input.equals("yes")) {
int year;
do {
System.out.print("请输入年份(如2016):");
while (!scanner.hasNextInt()) {
System.out.print("输入不正确,请重新输入年份(如2016):");
scanner.next();
}
year = scanner.nextInt();
} while (year <= 0);
int month;
do {
System.out.print("请输入月份(1-12):");
while (!scanner.hasNextInt()) {
System.out.print("输入不正确,请重新输入月份(1-12):");
scanner.next();
}
month = scanner.nextInt();
} while (month < 1 || month > 12);
boolean isLeapYear = false;
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
isLeapYear = true;
}
} else {
isLeapYear = true;
}
}
int daysInMonth = 0;
if (month == 2) {
if (isLeapYear) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
System.out.println(year + "年" + (isLeapYear ? "是" : "不是") + "闰年," + month + "月有" + daysInMonth + "天。");
do {
System.out.print("是否继续查询?(yes或no)");
input = scanner.next().toLowerCase();
} while (!input.equals("yes") && !input.equals("no"));
}
}
}
if语句是分支语句,也可以叫做条件语句。