2017-04-04 27 views
-3

Iv'e搜索谷歌並沒有找到我的答案。 回報中間的「+」是什麼意思? 如何將「翻譯」爲「簡單」? 謝謝!java中的超過1個問號

return (j>0&&(mat[i+1][j-1]<mat[i][j]) ? countRopes(mat, i+1, j-1) : 0) + 
    ((mat[i+1][j]<mat[i][j]) ? countRopes(mat, i+1, j) : 0) + 
    (j<mat[0].length-1&&(mat[i+1][j+1]<mat[i][j]) ? countRopes(mat, i+1, j+1) : 0); 
+1

超越:真正的帶走:永遠不會寫這樣的代碼!寫這些代碼的人......應該把他們的鍵盤拿走;和「沒有更多的代碼爲你寫」禁令......長時間。 – GhostCat

+0

您可以使用支持[重構](https://www.cis.upenn.edu/~matuszek/cit597-2005/Lectures/21-refactoring.ppt)的IDE來做到這一點。提取本地變量。如果您使用的IDE不支持重構,那麼它確實不支持編程。 –

回答

3

神祕的+符號是神祕的東西叫做加法。

int result = 0; 

if (j > 0 && mat[i+1][j-1]<mat[i][j]) { 
    result = countRopes(mat, i+1, j-1); 
} 

if (math[i+1][j] < mat[i][j]) { 
    result += countRopes(mat, i+1, j); 
} 

if (j < mat[0].length - 1 && math[i+1][j+1] < mat[i][j]) { 
    result += countRopes (mat, i+1, j+1); 
} 

return result; 
+0

你想指出你在那裏重構那個?:表達式。 – GhostCat

+0

爲什麼我會指出我在回答中回答了他的問題? – Mark

1

是否將各種括號評估爲相同的數據類型?

的+ S返回

  1. 如果它們是字符串的各種串聯的值。

  2. 字符的ASCII值的總和,如果字符。

  3. 數學和,如果他們是整數或浮點數。

馬克的答案似乎正確,只要我們正在處理整數。