Eine Rendite innerhalb und außerhalb einer If-Anweisung
Dies ist wahrscheinlich eine Recht einfache Frage, zu beantworten, aber es wurde Lauschangriff mich einige Zeit.
Wenn es eine return-Anweisung in einer if-Anweisung innerhalb einer Methode (in der Java-Sprache), aber ich Stell die andere am Ende als ein catch-all und um den Fehler zu vermeiden, sind beide Werte zurück gehen, die entlassen werden, eine nach der anderen, wenn die wenn Anweisung true ist?
Beispiel:
public int getNumber() {
if( 5 > number) {
return 5;
}
return 0;
}
Ergebnis: Methode gibt 5, und dann per Stapel Logik, gibt 0 zurück, kurz danach.
Oder brauche ich für die Nutzung einer externen Variablen etwa so:
int num = 1;
public int getNumber() {
if( 5 > number) {
num = 5;
}
return num;
}
Ergebnis: Methode ändert die variable num auf 5, dann num zurückgegeben wird, für den Einsatz. Ich vermute, in diesem Fall der return-Anweisung würde nicht unbedingt erforderlich, je nach variable in der Nutzung.
Vielen Dank im Voraus.
InformationsquelleAutor A13X | 2013-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, beide Werte werden nicht zurückgegeben. Ein
return
- Anweisung beendet die Ausführung der Methode Recht gibt, und gibt seinen Wert zurück. In der Tat, wenn der code nach einerreturn
dass der compiler weiß es nicht erreichen, weil derreturn
es wird sich beschweren.Brauchen Sie nicht, um eine variable zu verwenden, außerhalb der
if
zurück am Ende. Allerdings, wenn Sie Ihre Methode ist lang und Komplex ist, kann diese Technik helfen, die Lesbarkeit und die übersichtlichkeit, da nur einereturn
- Anweisung verwendet wird.InformationsquelleAutor rgettman
Nur die erste return-Anweisung trifft, wird verwendet. Die Methode wird dann beendet.
Gibt es einige code-Konventionen, die Stirn Runzeln über mehrere return-Anweisungen, weil Sie möglicherweise schwer zu Lesen, aber ich bin nicht einer von Ihnen. 🙂
Es ist eine ziemlich atypische Konvention. Siehe Sollte eine Funktion nur ein return-statement?
InformationsquelleAutor Xabster