Bei der Codierung in Python verwende ich häufig Funktionen/Methoden durch Einfügen von return
innerhalb von Schleifen, zum Beispiel, wenn eine Bedingung erreicht wurde und ich den Wert zurückgeben möchte. Ich habe bemerkt, dass, wenn ich dies in Java mache, die IDE (in diesem Fall Eclipse) den return
Befehl nicht zu erkennen scheint. Zum Beispiel hier:Rückkehr in eine Schleife: Falsch in Java?
protected Node getTrueParent() {
for (Edge e : this.edges) {
if (e.getNode2() == this && (!e.isPseudo())) {
Node parent = e.getNode1();
return parent;
}
}
}
Eklipse weist darauf hin, dass „Diese Methode ein Ergebnis vom Typ Knoten zurückgeben muß“. Ist es falsch, was ich mache? Außerdem wird parent
innerhalb der for
Schleife deklariert, so dass ich es nicht außerhalb der Schleife zurückgeben kann. Ein Weg wäre, parent
am Anfang zu deklarieren (d. H. Außerhalb der Schleife), aber das wäre ziemlich schlampig für mich zu lesen. Was ist ein richtiger Weg dies zu schreiben?
Sie brauchen etwas zurück, wenn 'this.edges' leer ist, oder wenn' e.getNode2() == diese && (! E.isPseudo()) 'ist nie wahr. – marstran
Der Grund, warum es in Python funktioniert, ist, weil es eine Rückkehr für Sie am Ende der Funktion einfügt, wie die vorhandenen Antworten zeigen –