Rosbby:
私は、コードの2セットを持っています。私は、ループ内で新しい変数を作成する場合、それはに仮定しますと、コードが動作します。
public static int subsequentLeapYear(int year) {
for(int i =1; i < 9; i++) {
int nextYear = year + i;
if(isLeapYear(nextYear)) {
return nextYear;
}
}
return 0;
}
public static int subsequentYear(int year) {
for(int i = 1; i < 9; i++) {
year += i;
if(isLeapYear(year)) {
return year;
}
}
return 0;
}
}
System.out.println(subsequentYear(8));
System.out.println(subsequentLeapYear(8));
それはそれは36 printintだ、なぜ私が理解できないではない12. 36を印刷します最初の1のために12を印刷することとします。
編集:
public static boolean isLeapYear(int year) {
if(year % 400 == 0) {
return true;
}
if(year % 100 != 0 && year % 4 == 0) {
return true;
}
return false;
}
ガブリエレMariotti:
それはので起こります。
int nextYear = year + i;
year
常に同じ値。
例:
i=1 -> nextYear = 8 +1 = 9;
i=2 -> nextYear = 8 +2 = 10;
中:
year += i;
今年は、常に同じ値ではありません。
i=1 -> year = 8 +1 = 9;
i=2 -> year = 9 +2 = 11;