2013-11-24 64 views
1

我試圖用Java創建一個函數,檢查天個月,從1582到2199的事件,如果我是int型的,我得到了以下錯誤return語句:此方法必須返回int類型的結果此方法必須返回一個int類型的結果

見我的代碼示例:

/------------------------- daysInMonth --- -------------------/

public static int daysInMonth(int year, int month) 

{ 

    //returns the number of days in month of year, or -1 if date is invalid. 
    //October 1582 has 16 days (16th-31st) 

    if (year < 1582 || year > 2199) 

     return -1; 


    else if(month == 1 || month ==3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) 

     return 31; 





} 

回答

0

你忘了結束您if-else陳述與else案件。

+0

謝謝你..我現在看到... – user3001818

1

有參數的組合時,師妹叫你的方法。 javac的是足夠聰明,發現它不會編譯這樣的代碼,因爲它可能會導致意外的行爲

0

如果沒有這兩個條件滿足你也應該寫的情況下。所以最好在else if之後寫一個else的案例。

0

而如果沒有一個條件得到滿足應該發生?

我建議這樣的事情

int ret = 0; 
if (year < 1582 || year > 2199) 
    ret = -1; 


else if(month == 1 || month ==3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) 

    ret = 31; 

return ret; 
+0

非常感謝您 – user3001818

1

事件,如果我是int型的return語句,我得到以下錯誤:此方法必須返回一個int類型的結果

是你確實返回int,儘管如果這些語句都是假的。如果我們做了類似daysInMonth(1000, 100);那麼程序就會感到困惑,因爲它最終會在沒有任何回報的地方結束。

只需在else if之後添加else或在方法的末尾添加return即可。

public static int daysInMonth(int year, int month) 
{ 
    //returns the number of days in month of year, or -1 if date is invalid. 
    //October 1582 has 16 days (16th-31st) 

    if (year < 1582 || year > 2199) 
     return -1; 
    else if(month == 1 || month ==3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) 
     return 31; 

    return -1; 
} 
+2

非常感謝此Vallentin ...我現在明白了 – user3001818

0

您應該添加這些行

else if(month==2) 
      { 
      if( year%4==0 ) 
       return 29; 
      else 
       return 28; 
      } 


else if(month==4|| month==6|| month==9||    month==11) 
    return 30; 

return -1; 
相關問題