Arreglar el tipo de error Missing Return Statement en Java

Rupam Yadav 12 octubre 2023
  1. ¿Por qué se produce el error missing return statement en Java?
  2. Arreglar el tipo de error Missing Return Statement en Java
Arreglar el tipo de error Missing Return Statement en Java

El compilador de Java puede informar un error de missing return statement al usar los bucles if, for o while en un método. En este artículo se explica por qué sucede esto y cómo solucionarlo.

¿Por qué se produce el error missing return statement en Java?

Uno de los errores de Java más comunes es una missing return statement.

Es un error que ocurre durante el proceso de compilación. Como implica la declaración, el problema generalmente es causado por una declaración de devolución faltante en el programa.

Tomemos como referencia un programa que puede producir este error.

Aquí hay un método que devuelve una variable de tipo String después de determinar si un número pasado como argumento es primo o no. Este método utiliza los bucles if, else y for.

Cuando observamos este programa detenidamente, podemos ver el primer par del bucle if-else, cada uno devolviendo una String. En el bucle else, ejecutamos un bucle for que a su vez devuelve un String usando if y else.

Se ve bien a primera vista. Pero después de un examen cuidadoso, podemos encontrar que la instrucción else no devuelve nada en caso de que falle el bucle for.

En otras palabras, el compilador no sabe que el bucle for dentro del bucle else devolverá un String. Crea ambigüedad.

Incluso si el bucle for se ejecuta y devuelve un tipo, el compilador tiene que asumir que existe la posibilidad de que no devuelva nada. Entonces, para aclarar esta confusión para el compilador, el método else debería devolver un tipo String.

La documentación de Java sugiere que si declaramos un método con un tipo de retorno, debe haber una sentencia return al final del método. De lo contrario, el compilador mostrará un error de missing return statement.

Este error se lanza cuando por error omitimos la declaración de retorno del método, ya que no tiene un tipo de retorno o no se ha declarado usando el tipo void.

public class TestError {
  public static void main(String[] args) {
    System.out.println(Check_Prime(10));
    System.out.println(Check_Prime(5));
    System.out.println(Check_Prime(2));
    System.out.println(Check_Prime(1));
  }
  public static String Check_Prime(int number) {
    int i;
    if (number == 2) {
      return "Prime";
    } else {
      if (number < 2) {
        return "Not Prime";
      } else {
        for (i = 2; i <= number; i++) {
          if (number % i == 0) {
            return "Not Prime";
          } else {
            return "Prime";
          }
        }
      }
    }
  }
}

Arreglar el tipo de error Missing Return Statement en Java

public class TestError {
  public static void main(String[] args) {
    System.out.println(Check_Prime(10));
    System.out.println(Check_Prime(5));
    System.out.println(Check_Prime(2));
    System.out.println(Check_Prime(1));
  }
  public static String Check_Prime(int number) {
    int i;
    int k = number / 2;
    if (number == 2) {
      return "Prime";
    } else {
      if (number < 2) {
        return "Not Prime";
      } else {
        for (i = 2; i <= k; i++) {
          if (number % i == 0) {
            return "Not Prime";
          } else {
            return "Prime";
          }
        }
        return "";
      }
    }
  }
}

Producción :

Not Prime
Prime
Prime
Not Prime
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Error