为了账号安全,请及时绑定邮箱和手机立即绑定

java我的方法调用由于某种我不明白的原因无效

java我的方法调用由于某种我不明白的原因无效

哆啦的时光机 2021-08-04 16:32:48
这可能是一个很大的菜鸟错误,但我不明白为什么我的 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 回答

?
沧海一幻觉

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;

}


查看完整回答
反对 回复 2021-08-04
?
冉冉说

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;


查看完整回答
反对 回复 2021-08-04
  • 2 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信