java método booleano instrucción return

Estoy tratando de programar un juego, y estoy haciendo los métodos para comprobar las diferentes partes de un jugador de terreno. Estoy usando un método booleano, pero netbeans me está diciendo no tengo una instrucción return.

public boolean checkTerrainDown(Level levelToCheck){
    for(Terrain terrainToCheck: levelToCheck.levelTerrain){
        if(y+h<terrainToCheck.getY()){
            return true;
        }else{
            return false;
        }
    }
}
  • Cuando el método tiene que devolver algo que usted necesita para proporcionar instrucción return para cada posible ruta de ejecución que se pueden tomar.
  • Es una buena práctica que sólo tienen una única instrucción return! por cierto , usted no tiene que hacer un for por lo que están haciendo.. solo están pidiendo para el primer elemento.. además de utilizar return y+h < terraintoCheck.getY();
  • No, realmente no. Es una buena práctica para hacer que tu código sea lo más claro posible. A veces eso significa una instrucción return – a veces los medios múltiples.
  • de que te saliera bien, es una decisión personal que no me gusta múltiples devuelve la mayoría de las veces, creo que yo sólo uso de varias devoluciones por el «fácil de los casos», pero legible el código limpio es lo que hemos puesto a punto :).
InformationsquelleAutor user2817232 | 2013-09-25

3 Kommentare

  1. 6

    Lo que si no hay Terrain comprobar? A continuación, el cuerpo de la for bucle nunca se ejecuta. Usted no tiene return declaración después de la for bucle para dar cuenta de este caso. ¿Qué sería de Java de retorno en este caso?

    Lugar un return declaración después de la for bucle para manejar el caso en el que no hay Terrain en el Level‘s levelTerrain. De esa manera, cada posible caso de ejecución return algo.

    • También la for bucle es inútil aquí..
  2. 1

    si el for loop no ejecutado, entonces no hay ninguna instrucción return de ser ejecutados.

    • Lo que significa que no está claro. Mejorar su respuesta, por favor.
  3. 1
    public boolean checkTerrainDown(Level levelToCheck){
            //add this line
            boolean mark = false;
        for(Terrain terrainToCheck: levelToCheck.levelTerrain){
            if(y+h<terrainToCheck.getY()){
                    //add this line,remove this //return true;
                mark = true;
                //add this line
                break;
            }
            //else{
                //return false;
            //}
        }
        //add this line
        return mark;
    }

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea