Arreglar el tipo de error Missing Return Statement en Java
-
¿Por qué se produce el 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase