闰年在java

时间:2016-05-21 12:14:43

标签: java leap-year

为什么这段代码不起作用。我是业余爱好者,今天开始学习java。

enter image description here

链接到java visualiser: http://www.cs.princeton.edu/~cos126/java_visualize/#

这是代码:

public class ClassNameHere {
public static int max(int[] m) {
if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {
System.out.println(m + "is a leap year");
} else {
System.out.println(m + "is not a leap year");

}
}
}
max(2000);

3 个答案:

答案 0 :(得分:1)

我要说的第一件事就是你操作物体的方式没有多大意义...... 一切都从这里开始:

public static int max(int[] m) {
if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {

由于m是一个int数组,因此编译器没有逻辑方法可以理解将数组除以4或者取该除法的模数....这段代码甚至不可能是编译。

第二。 这个逻辑不正确:

if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {

一定是

if ((m % 400 == 0) || (m % 4 == 0) && (m % 100 != 0)) {

实施例

public boolean isLeap(final int year) {
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

答案 1 :(得分:0)

if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0))行中的逻辑不正确。这是一个检查闰年的正确程序: -

public class DetermineLeapYearExample {
     public static void main(String[] args) {

                    //year we want to check
                    int year = 2004;

                    //if year is divisible by 4, it is a leap year

                    if((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
                            System.out.println("Year " + year + " is a leap year");
                    else
                            System.out.println("Year " + year + " is not a leap year");
            }
    }
     Hope it will help

答案 2 :(得分:0)

max method参数是一个数组,定义为" int [] m"所以max(2000)不会起作用。 除此之外,正如其他答案所述,你没有主要功能。