2009-04-13 11 views

Respuesta

94

Acaba de salir del método en ese punto. Una vez que se ejecuta return, el resto del código no se ejecutará.

por ejemplo.

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

Tenga en cuenta que el compilador es suficientemente inteligente como para decirle algo de código no puede ser alcanzado:

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

Entiendo que su código es ilustrativo, pero para información de los padres; He trabajado con personas que creen que cada método debe tener solo una declaración de devolución. No soy uno de ellos, pero creo en minimizar el número de devoluciones tanto como sea posible sin hacer que el código sea feo al hacerlo. – digitaljoel

+2

Sí, definitivamente no es algo que se use en exceso, pero a veces simplemente lo hace mucho más fácil y aún puede ser muy legible. – CookieOfFortune

+2

Mi forma favorita de romper desde bucles anidados :) –

22

Puede tener return en un método vacío, simplemente no puede devuelve ningún valor (como en return 5;), es por eso que lo llaman void método. Algunas personas siempre eliminan explícitamente los métodos vacíos con una declaración de devolución, pero no es obligatorio. Se puede puede utilizar para dejar una función temprana, sin embargo:

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

El lenguaje Java specification dice que puede tener retorno sin expresión si su método devuelve vacío.

2

Funciona igual que un retorno de la función con un parámetro especificado, excepto que no devuelve nada, ya que no hay nada que devolver y el control se transfiere al método de llamada.

2

Sale de la función y no devuelve nada.

Algo así como return 1; sería incorrecto ya que devuelve número entero 1.

14

La palabra clave aparece simplemente un marco de la pila de llamadas devolver el control a la línea que sigue la llamada de función.

+6

Haha. Esta es una gran respuesta, pero dudo que los principiantes en Java capten realmente lo que estás tratando de decir. – franklin

1

Vea este ejemplo, desea agregarlo a la lista condicionalmente. Sin la palabra "return", se ejecutarán todos los ifs y se agregará a ArrayList.

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

ArrayList debería haber sido inicializado como: ArrayList list = new ArrayList <>(); –

Cuestiones relacionadas