java我的方法调用由于某种我不了解的原因而无效

时间:2018-08-21 15:11:24

标签: java methods syntax

这可能是一个很大的菜鸟错误,但我不知道为什么我的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;
    }
}

}

2 个答案:

答案 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;