Как избежать 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>
Кстати, каково ограничение того, насколько глубоко мы можем вызывать функции?