2013-08-30 56 views

回答

6

如果控制不進入第二級if會發生什麼?

if (grid[i - 2][j] != 0) 

沒有return語句,不是嗎?

您需要爲所有可能的路徑使用return語句。

我該如何解決這個問題?

一種可能的方式:

添加return語句一級如果太。例如

if (i - 1 >= 1){ 
     if (grid[i - 2][j] != 0){ 
      return xyTo1D(i - 1, j); 
     } 
     return -1; //OR whatever int you would like to return 
    } 
+0

它不是一個好方法使用在多個區塊的回報。相反,我們應該使用方法級別變量來返回。我們可以設定價值。 –

+1

@GV:這個問題有很大的爭議。有些人喜歡從做生意的地方回來,有些人希望在方法結束時有回報。坦率地說,我不想跳進那個討論。正如我在答覆中所說的那樣,這是一種可能的方式,可以通過多種方式解決一個問題。 – kosa

+0

@GV:整個主題是20或30歲。別告訴我有人復活了。我認爲這一點已經解決了,當我們還決定方法應該很短(這使得任何'回報'顯眼)。現在討論的是什麼? –

1
private int getUpSite(int i, int j){ 
int returnVal = -1; 
    if (i - 1 >= 1){ 
     if (grid[i - 2][j] != 0){ 
      returnVal = xyTo1D(i - 1, j); 
     } 
    } 
return returnVal; 
} 
0
private int getUpSite(int i, int j){ 
    int returnValue=-1; 
    if (i - 1 >= 1 && grid[i - 2][j] != 0){ 
     returnValue = xyTo1D(i - 1, j); 
    } 
    return returnValue; 
} 
相關問題