2 回答
TA贡献1824条经验 获得超5个赞
您的方法调用应该在您的main方法内部,而该方法isLeapYear应该在您的主方法之外。此外,year % == !100您的else if子句中的表达式 ,在语法上是不正确的。它应该是year % 100 != 0,我相信。最后,代码的最后一部分(标记为 的部分//return false if not in year range)应该在其下方的大括号之外。
public static void main(String[] args) {
isLeapYear(-1600);
isLeapYear(1600);
isLeapYear(2017);
isLeapYear(2000);
}
public static boolean isLeapYear(int year) {
if (year >= 1 && year <= 9999) {
if (year % 400 == 0) {
System.out.println("true");
return true;
} else if (year % 4 == 0 && year % 100 != 100) {
System.out.println("true");
return true;
} else {
System.out.println("false");
return false;
}
}
// return false if not in year range
System.out.println("false");
return false;
}
TA贡献1877条经验 获得超1个赞
% 运算符期望值在右边和 ! 对于布尔运算符和可比较运算符是可以接受的。更正以下语句: } else if (year % 4 == 0 && year % == !100) {
还从主 if 条件中删除以下 2 条语句,并将主 if 条件放在一边
System.out.println("false");
return false;
i.e:
if(year >= 1 && year <= 9999) {
-------
}
System.out.println("false");
return false;
添加回答
举报