Hier ist ein Ausschnitt aus meinem Code:in einer Schleife von Fehlern Stuck: unerreichbarer Aussage und keine return-Anweisung zur Verfügung gestellt
public static int dc (String s,int k, int c){
String s1, s2;
int m, n;
if (check(s, k) != -1) {
int p = check(s, k);
c++;
s1 = s.substring(0, p) + s.substring(p + 1);
s2 = s.substring(0, p + 1) + s.substring(p + 2);
if ((check(s1, k) == -1) || (check(s2, k) == -1)) {
return c;
} else {
m = dc(s1, k, c);
n = dc(s2, k, c);
if (m > n) {
return n;
} else {
return m;
}
}
}
}
So ist der Fehler sagt, dass es eine fehlende ist return-Anweisung (nicht sicher, welches Szenario habe ich verpasst). Aber wenn ich am Ende eine return-Anweisung hinzufüge, zeigt dies, dass die return-Anweisung nicht erreichbar ist. Ich habe hier eine hilfreiche Antwort gefunden: Unreachable return statement still throws error und ich habe versucht, es in einen Versuch Catch-Block setzen, aber es fragt immer noch nach einer Rückkehr Aussage. Obwohl der Compiler weiß, dass alles, was ich am Ende schreibe, redundant ist, warum zeigt es immer noch einen Fehler?
Diese Methode fehlt keine 'return'-Anweisung in einem Zweig. Vielleicht ist das Problem mit Ihrer 'check' Methode? Könnten Sie seinen Code hinzufügen? – Mureinik
Sie müssen eine Rückgabeanweisung am Ende haben, falls die erste if-Bedingung falsch ist. Dein Leben wäre einfacher, wenn du den richtigen Einzug verwendest. – Eran
Der Code geht nur dann in diese Methode, wenn die Prüfung nicht -1 ist. Soll ich den gesamten Code posten? – Rohinb97