Я пытаюсь написать рекурсивный код, чтобы найти все пути выхода квадратной сетки, и я получаю некоторую ошибку в Project4.escape (Project4.java:41) Я понятия не имею, какая ошибка это правда, потому что в следующей строке:Неизвестная ошибка Java Recursion
в Project4.escape (Project4.java:41)
повторяется так часто, что сообщение об ошибке не отображается. Пожалуйста, помогите мне найти проблему и исправьте ее. Ниже следует мой метод побега.
private static void escape(int row, int col, int[][] swamp,String escapePath)
{
if (row == swamp.length || row==0 || col == 0 || col == swamp.length)
{
//winner
System.out.println(escapePath);
}
else
{
for (int i = -1; i < 2; i++)
{
for (int j=-1;j<2;j++)
{
if (row+i>=0 && j+col>=0 && row+i<swamp.length && col+j<swamp.length &&
swamp[row + i][col + j] == 1)
{
escapePath+="["+row+","+col+"]";
swamp[row][col]=2;
escape(row,col,swamp,escapePath);
}
}
}
}
swamp[row][col]=1;
}
// РЕДАКТИРОВАТЬ: Ниже следует основной метод, который показывает, с чего я сначала называю побег.
public static void main(String[] args) throws Exception
{
int[] dropInPt = new int[2]; // row and col will be on the 2nd line of input file;
int[][] swamp = loadSwamp(args[0], dropInPt); //returns an 8 by 8 grid of 0s and 1s and fills dropInPt with 1s
int row=dropInPt[0], col = dropInPt[1];
printSwamp( "\n SWAMP: dropped in at: ["+row+","+col+"]\n",swamp);
System.out.println("\n ESCAPE PATHS:\n");
String escapePath = "["+dropInPt[0]+","+dropInPt[1]+"]";
escape(row,col,swamp,escapePath);
}
Какая линия 41? И каково общее сообщение об ошибке? Вы не получаете сообщение об ошибке «some». – nhgrif
escape (строка, col, болото, escapePath); – user2856817
Хорошо, я вижу, что рекурсия мешает вам видеть сообщение об ошибке. Вы пытались установить точку останова? Я установил точку останова и добавлю выходную строку. – nhgrif