这可能是一个很大的菜鸟错误,但我不知道为什么我的IDE不喜欢我的方法调用。
//main here:
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) {
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;
}
}
}
答案 0 :(得分:1)
您的方法调用应在main
方法内部,而方法isLeapYear
应在main方法外部。另外,您的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;
}
答案 1 :(得分:0)
%运算符期望值在和右边!对于布尔运算符和类似运算符是可接受的。更正以下陈述:
} else if(年%4 == 0 && year % == !100
){
还要从main if条件中删除以下2条语句,并在main if条件中放出一侧
System.out.println("false");
return false;
i.e:
if(year >= 1 && year <= 9999) {
-------
}
System.out.println("false");
return false;