StackOverfolwError

Status
Nicht offen für weitere Antworten.

Felix

Bekanntes Mitglied
Hallo,
ich habe ein Problem:
Wiso entsteht bei dieser Methode immer ein StackOverfolwError, wenn ch [a] == 0 ist?

Code:
		static int symp (int a, int b, int [][]ch, int r)
		{
			for (int n=1; n <= r; n++)
			{
				if (ch [a][b] == 1)
					return 1;
				else if (ch [a][n] == 1)
				{
					if (n == b)
						return 1;
					else if (n == a){
					if ( n == r)
						return 0;}
					else
						symp (n,b,ch,r);
				}
			}
			return 0;
}

MFG
Felix
 
G

Guest

Gast
Sorry, ich hab den falschen Code gepostet, wie ich gerade erfahren habe, wird hier der StackOwerflowError ausgelöst:

Code:
				System.out.println(a + " " + b + "  " + chatonen [a][b]);//DEBUGGING
				if (a < b || a > b){
					int sympatic = symp(a,b,chatonen,readed);
					if (sympatic == 0)
						System.out.println(a+" kann ueber "+b+ " tratschen...");
					else
					System.out.println(a+" kann ueber "+b+" nicht tratschen...");

MFG
Felix
 
B

bygones

Gast
stackoverflowerror entsteht, wenn die rekursionstiefe einer methode zu tief ist...

ich würde mal deine rekursion v.a. die abbruchbedingung, ob die überhaupt einmal zu treffen kann !!
 

Bleiglanz

Gesperrter Benutzer
die Abbruchbedingung testet nur a und b (das ist OK), aber beim rekursiven Aufruft werden a,b unverändert übergeben

so kann die Rekursion nicht abbrechen, weil man beim "nächten Eintritt" ja wieder in der genau gleichen Situation ist
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben