Pregunta

Estoy mirando encontrar un camino tutorial y me di cuenta de una declaración return dentro de un método void (PathTest clase, la línea 126):

if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
    return;
}

Soy un principiante en Java. ¿Puede alguien decirme por qué está ahí? Por lo que yo sabía, no se permite return dentro de un método vacío.

¿Fue útil?

Solución

Sólo sale del método en ese punto. Una vez que se ejecuta return, no se ejecutará el resto del código.

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 suficiente para decir algo de código inteligente no puede ser alcanzado:

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

Otros consejos

Puede tener return en un método vacío, simplemente no puede devolver ningún valor (como en return 5;), es por eso que lo llaman un vacío método. Algunas personas siempre terminan explícitamente métodos vacíos con una instrucción de retorno, pero no es obligatorio. Es puede se utiliza 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
}

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.

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

Funciona lo mismo que un cambio de función con un parámetro especificado, si no devuelve nada, ya que no hay nada para volver y el control se pasa de nuevo al método de llamada.

Se sale de la función y devuelve nada.

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

Vea este ejemplo, desea agregar a la lista de forma condicional. Sin la palabra "retorno", todos IFS se ejecutarán y añadir a la 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;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top