import java.util.Scanner;
public class GregorianYear
{
private int year;
public GregorianYear(int a)
{
year = a;
}
public void SetYear()
{
System.out.println("The year is: ");
Scanner kbd = new Scanner(System.in);
year = kbd.nextInt();
}
public int getYear()
{
return year;
}
public boolean isLeapYear()
{
if (year > 1852)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
{
return false;
}
else
{
return true;
}
}
}
//Compiler says I need a return statement here.
}
}
我正在爲類編程一個(應該是)簡單程序,並且當我沒有任何東西時,它說我需要一個return語句。我假設我只能返回一個布爾語句,所以我輸入return isLeapYear();.當我這樣做時,我的測試方法(帶有公共靜態void main的另一個文件)運行,並在我輸入return語句的那一行導致一個StackOverflow錯誤。我究竟做錯了什麼?關於退貨聲明的問題
使用代碼按鈕。 – 2009-10-25 10:23:18
選擇更具可讀性的縮進樣式(http://en.wikipedia.org/wiki/Indent_style)。另外,請張貼測試代碼;你發佈的代碼沒有任何會導致堆棧溢出的東西。爲什麼歧視1852年以前的幾年? – outis 2009-10-25 10:29:01
注意:方法名稱以小寫字母開頭。 – 2009-10-25 10:29:17