Java 循环:闰年

Java 循环:闰年,java,if-statement,for-loop,Java,If Statement,For Loop,我正试图编写一个程序,在2100年之前,每行显示十个闰年 到目前为止,我掌握的代码如下: public class leapYear { public static void main (String args[]){ int leapYear = 2001; // initialize leapYear variable to 2001 if (leapYear <= 2100){ for (int x = 0; x <= 10; x++){ //

我正试图编写一个程序,在2100年之前,每行显示十个闰年

到目前为止,我掌握的代码如下:

public class leapYear {
public static void main (String args[]){
    int leapYear = 2001; // initialize leapYear variable to 2001

    if (leapYear <= 2100){
        for (int x = 0; x <= 10; x++){ // print ten leap years per line
            System.out.print(leapYear + " ");
            leapYear = leapYear + 4;
        }// end of for loop
        System.out.println(" ");
        int x = 0;
    } // end of if statement

}// end of main method

我很难找到一个条件,使我能够在下面几行打印下一系列的leapYears。请提供任何指导。

更改ifleapYear为闰年提供正确的实施:

public void main(String[] args) {
    for(int year = 2001 ; year <= 2100 ; ++year) {
        if(isLeapYear(year)) {
            System.out.println(year);
        }
    }
}

public static boolean isLeapYear(int year) {
    if (year % 4 != 0) {
        return false;
    } else if (year % 400 == 0) {
        return true;
    } else if (year % 100 == 0) {
        return false;
    } else {
        return true;
    }
}

您当前正在使用ifstatement检查是否要打印某些内容,如果您的ifstatement给您带来麻烦,它只执行一次。你需要一个while循环,或者你可以用for循环

                for (int leapYear = 2001; leapYear <= 2100; leapYear += 4) {
                    if((leapYear - 1) % 40 == 0) {
                        System.out.println(" ");
                    }
                    System.out.print(leapYear + " ");
                }
然而,我想指出的是,你打印出来的年份都不是闰年。闰年是可以被4除100除400除2000年是闰年2004年是,2100年不是,但2400年会非常混乱你可能想看看闰年


祝你好运

你问如何每行打印10闰年。 要实现这一点,只需更改:
如果这个答案因其长度和内容而被标记为低质量。请提供更多信息,2100年不是闰年,所以使用<2100。FWIW-2001不是闰年,但2000年是。顺便说一下,那不是闰年。2000年是闰年。2001年并非如此。此外,每年2100年不是闰年。您可以使用来确定一年是否是闰年。如果您想改进您的闰年计划,您应该在所有您想检查的年份(比如2001年到2099年)上做一个for循环,并每年进行测试,以确定它是否是闰年。现在,你选择了一个开始的年份,然后一次又一次地增加4。如果你必须增加年数,比如说2500年,你的程序将显示不正确的年数。闰年不仅仅是每四年一次!可被100整除的年份,如1900年或2100年,不是闰年,但可被400整除的年份是闰年。每年测试要比猜测容易得多——你永远都会做对的。@doublesharp你说到点子上了。顺便说一句,有时也是一个很好的信息来源由于其长度和内容,该答案被标记为低质量。请提供一些解释好的上帝,似乎你在这里足够了解,最好提供一些解释来帮助op不为opI做作业。你是谁?你会有不同的回答吗?伟大的每一个好的输入都是受欢迎的。很抱歉在我的回答中提供了一些额外的内容,而其他人已经回答了OP。它就是这样。我不能改变人模40允许在一行上打印10个闰年,如果模40即10个闰年已过,则应开始新的行。尽管需要注意的是,这并不能解释每100年的非闰年。相反,应该输入一个计数,并且每隔10次打印闰年,它应该添加一行新内容
public void main(String[] args) {
    for(int year = 2001 ; year <= 2100 ; ++year) {
        if(isLeapYear(year)) {
            System.out.println(year);
        }
    }
}

public static boolean isLeapYear(int year) {
    if (year % 4 != 0) {
        return false;
    } else if (year % 400 == 0) {
        return true;
    } else if (year % 100 == 0) {
        return false;
    } else {
        return true;
    }
}
                for (int leapYear = 2001; leapYear <= 2100; leapYear += 4) {
                    if((leapYear - 1) % 40 == 0) {
                        System.out.println(" ");
                    }
                    System.out.print(leapYear + " ");
                }
public class LeapYear {
    public static void main(String[] args) {

        int leapYear = 2001; // initialize leapYear variable to 2001

        while (leapYear <= 2100) { // a simple change of "If" to "While" here
                                    // will do the trick
            for (int x = 0; x < 10; x++) {
                System.out.print(leapYear + " "); // print ten leap years per
                                                    // line
                leapYear = leapYear + 4;
            }
            System.out.println();
        } // end of while loop
    } // end of main method
}// end of class