Итак, это мое задание - мне просто нужно вернуть true, если дата # 1 позже даты # 2, но я не думаю, что неправильно написал метод isLater, потому что когда я запускаю программу, она говорит java. lang.StackOverflowError. Вот мой код:Программа перегружена, как я могу ее исправить?
import java.util.Scanner;
public class Dates
{
/**
* returns true if month1/day1/year1 is later than
* month2/day2/year2; otherwise returns false
*/
public static boolean isLater(int month1, int day1, int year1,
int month2, int day2, int year2)
{
if (isLater (month1, day1, year1, month2, day2, year2))
return true;
else
return false;
}
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
System.out.print("Enter the first date (month day year): ");
int month1 = kb.nextInt();
int day1 = kb.nextInt();
int year1 = kb.nextInt();
System.out.print("Enter the second date (month day year): ");
int month2 = kb.nextInt();
int day2 = kb.nextInt();
int year2 = kb.nextInt();
System.out.println(); // blank line
String msg = month1 + "/" + day1 + "/" + year1;
if (isLater(month1, day1, year1, month2, day2, year2))
msg += " IS ";
else
msg += " is NOT ";
msg += "later than " + month2 + "/" + day2 + "/" + year2;
System.out.println(msg);
kb.close();
}
}
Что мне делать, чтобы исправить это? Другими словами, как еще я могу использовать метод isLater для сравнения двух дат?
Спасибо! Simone
Рекурсивный метод вызывает себя .. какой сюрприз: P. Вы должны описать, почему именно это бесконечный цикл. – Tom