Как избежать StackOverflowError для рекурсивной функции

Я пишу функцию, которая будет вызывать себя примерно до 5000 раз. Конечно, я получаюStackOverflowError, Есть ли способ, которым я могу переписать этот код довольно простым способом ?:

<code>void checkBlocks(Block b, int amm) {

    //Stuff that might issue a return call

    Block blockDown = (Block) b.getRelative(BlockFace.DOWN);
    if (condition) 
        checkBlocks(blockDown, amm);


    Block blockUp = (Block) b.getRelative(BlockFace.UP);
    if (condition) 
        checkBlocks(blockUp, amm);

    //Same code 4 more times for each side

}
</code>

Кстати, каково ограничение того, насколько глубоко мы можем вызывать функции?

Ответы на вопрос(5)

Ваш ответ на вопрос