2009-04-13 9 views

Antwort

94

Es beendet gerade die Methode an diesem Punkt. Sobald return ausgeführt wird, wird der Rest des Codes nicht ausgeführt.

z.

public void test(int n) { 
    if (n == 1) { 
     return; 
    } 
    else if (n == 2) { 
     doStuff(); 
     return; 
    } 
    doOtherStuff(); 
} 

Beachten Sie, dass der Compiler intelligent genug, um Ihnen einen Code zu sagen, kann nicht erreicht werden:

if (n == 3) { 
    return; 
    youWillGetAnError(); //compiler error here 
} 
+4

Ich verstehe Ihren Code ist illustrativ, aber für die Informationen der Eltern; Ich habe mit Leuten gearbeitet, die glauben, dass jede Methode nur eine einzige Return-Anweisung haben sollte. Ich bin nicht einer von ihnen, aber ich glaube daran, die Anzahl der Rückgaben so gering wie möglich zu halten, ohne den Code dabei hässlich zu machen. – digitaljoel

+2

Ja, es ist definitiv nicht etwas zu viel zu verwenden, aber manchmal macht es es einfach viel einfacher und kann immer noch gut lesbar sein. – CookieOfFortune

+2

Meine bevorzugte Art, aus verschachtelten Loops zu brechen :) –

22

Sie return in einer Void-Methode haben, kann man einfach nicht Rückkehr jeden Wert (wie in return 5;), deshalb nennen sie es eine void Methode. Einige Leute beenden Void-Methoden immer ausdrücklich mit einer return-Anweisung, aber das ist nicht zwingend erforderlich. Es kann verwendet werden, um eine Funktion zu früh zu verlassen, aber:

void someFunct(int arg) 
{ 
    if (arg == 0) 
    { 
     //Leave because this is a bad value 
     return; 
    } 
    //Otherwise, do something 
} 
12

Die Java-Sprache specification sagt Ihnen Rückkehr ohne Ausdruck haben kann, wenn Ihre Methode void zurückgibt.

2

Es funktioniert genauso wie eine Rückgabe für die Funktion mit einem bestimmten Parameter, außer es gibt nichts zurück, da nichts zurückgegeben werden muss und die Steuerung an die aufrufende Methode zurückgegeben wird.

2

Es beendet die Funktion und gibt nichts zurück.

Etwas wie return 1; wäre falsch, da sie ganze Zahl zurückgibt 1.

14

Das Schlüsselwort einfach erscheint ein Rahmen von der Aufrufliste die Steuerung auf der Zeile nach dem Funktionsaufruf zurückkehrt.

+6

Haha. Das ist eine gute Antwort, aber ich bezweifle, dass Anfänger in Java wirklich begreifen würden, was du zu sagen versuchst. – franklin

1

Siehe dieses Beispiel, das Sie der Liste bedingt hinzufügen möchten. Ohne das Wort "return" werden alle ifs ausgeführt und zur ArrayList hinzugefügt!

Arraylist<String> list = new ArrayList<>(); 

    public void addingToTheList() { 

    if(isSunday()) { 
     list.add("Pray today") 
     return; 
    } 

    if(isMonday()) { 
     list.add("Work today" 
     return; 
    } 

    if(isTuesday()) { 
     list.add("Tr today") 
     return; 
    } 
} 
+0

Die ArrayList sollte wie folgt initialisiert sein: ArrayList list = new ArrayList <>(); –

Verwandte Themen