Java 循环:闰年
我正试图编写一个程序,在2100年之前,每行显示十个闰年 到目前为止,我掌握的代码如下: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++){ //
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