我有標籤網格(大小爲n * n),我想填充其不規則部分的顏色。我寫了一個方法用顏色填充標籤
private void fill(int j){
while(board[j].getName().equals("s")){
board[j].setBackground(Color.yellow);
try{
fill(j-1);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j+1);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j+n);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j-n);
} catch (ArrayIndexOutOfBoundsException e){}
}
}
我仍然得到StackOverflowError。我沒有使用大的部件(我的n是最大20),我試圖用if替換,但沒有工作。它對於堆棧來說太大了,或者可能存在無限循環?我如何解決這個問題?
遞歸調用的終止條件是什麼?你期望什麼最小值和最大值** j **保持 –
爲了更好地幫助您,請發佈[SSCCE](http://sscce.org/)。 –