Ich kann var stop nicht speichern, damit es für Zyklus anhalten kann. Ich brauche nur, wenn tryOpen wahr ist, um diese Methode zu beenden und Rekursion zu stoppen.Java var aus Anweisung speichert nicht
public void moznosti(char [] arr, String pr, int a, int b) {
boolean stop = false;
if (b == 0) {
char [] heslo = pr.toCharArray();
for (int i = 0; i < heslo.length; i++) {
System.out.print(heslo[i]);
}
System.out.println();
if (tryOpen(heslo)) {
stop = true;
System.out.println("END");
}
return;
}
if (stop == false) {
for (int i = 0; i < a; i++) {
String tmp = pr+arr[i];
moznosti(arr, tmp, a, b-1);
}
}
}
Ihre Frage ist nicht wirklich klar. Wenn Sie jedoch denken, dass Sie "Stopp" in einem rekursiven Aufruf festlegen können und dass die anderen rekursiven Aufrufe es sehen können, liegen Sie falsch. Für jeden rekursiven Aufruf gibt es eine separate lokale Variable "stop". Erwägen Sie die Verwendung eines 'return', um zwischen rekursiven Aufrufen zu kommunizieren. – ajb
Vielleicht brauchen Sie 'stop', um keine lokale Variable zu sein? könnte ein Rückgabewert sein. – Thilo
Sie meinen nicht void aber boolean zu haben? – NightRain