Прежде всего, я рекомендую вам адаптировать методы модульного тестирования для такого рода сценариев ios. Для этого я приведу пример того, как разработать свой код, чтобы вы могли его правильно протестировать.
Ваш текущий код:
- ваш l oop не является выполняется,
year1
больше year2
, поэтому i <= year2
всегда ложно. Вот почему.
я рекомендую переписать ваш код следующим образом:
public class Main {
public boolean isLeapYear(int year) {
boolean isLeap = false;
if (i % 4 == 0) {
isLeap = true;
}
if (i % 4 == 0 && i % 100 == 0) {
isLeap = false;
}
if (i % 100 == 0 && i % 400 == 0) {
isLeap = true;
}
return isLeap;
}
public int getLeapYears(int firstYear, int secondYear) {
int count = 0;
int tmp;
// firstYear must be less than secondYear
if (firstYear > secondYear) {
tmp = firstYear;
firstYear = secondYear;
secondYear = tmp;
}
while(firstYear <= secondYear) {
if (isLeapYear(firstYear)) {
++count;
}
++firstYear;
}
return count;
}
public static void main(String[] args) {
int year1 = 1805;
int year2 = 1808;
System.out.print(getLeapYears(year1, year2));
}
}
я разделил ваш код на 3 функции:
- main, которая будет просто передавать аргументы в основную функцию
- getLeapYears, с ответственностью l oop через годы и подсчитывать високосные
- isLeapYear, с ответственностью знать, это заданный год это прыжок или нет
Почему это ?? Такой дизайн вашего кода позволит вам писать модульные тесты и получать информацию о том, где находятся ошибки вашего кода, если они появляются.
Если у вас есть отдельные функции, даже если вы не пишете модульные тесты, вы можете попробовать свои отличные функции от вашей основной функции и знать, что происходит:)