Correction du type d'erreur d'instruction de retour manquante en Java
-
Pourquoi l’erreur
missing return statement
se produit-elle en Java - Correction du type d’erreur d’instruction de retour manquante en Java
Le compilateur Java peut signaler une erreur missing return statement
lors de l’utilisation des boucles if
, for
ou while
dans une méthode. Cet article explique pourquoi cela se produit et comment y faire face.
Pourquoi l’erreur missing return statement
se produit-elle en Java
L’une des erreurs Java les plus courantes est une missing return statement
.
C’est une erreur qui se produit pendant le processus de compilation. Comme l’indique l’instruction, le problème est généralement causé par une instruction de retour manquante dans le programme.
Prenons un programme de référence qui peut produire cette erreur.
Voici une méthode qui renvoie une variable de type String
après avoir déterminé si un nombre passé en argument est premier ou non. Cette méthode utilise les boucles if
, else
et for
.
Quand on regarde attentivement ce programme, on peut voir la première paire de la boucle if-else
, chacune retournant une String
. Dans la boucle else
, nous exécutons une boucle for
qui à son tour renvoie une String
en utilisant le if
et le else
.
Ça a l’air bien à première vue. Mais après un examen attentif, nous pouvons constater que l’instruction else
ne renvoie rien en cas d’échec de la boucle for
.
En d’autres termes, le compilateur ne sait pas que la boucle for
à l’intérieur de la boucle else
renverra une String
. Cela crée de l’ambiguïté.
Même si la boucle for
s’exécute et renvoie un type, le compilateur doit supposer qu’il est possible qu’elle ne renvoie rien. Donc, pour dissiper cette confusion pour le compilateur, la méthode else
doit renvoyer un type String
.
La documentation Java suggère que si nous déclarons une méthode avec un type de retour, il doit y avoir une instruction return
à la fin de la méthode. Sinon, le compilateur affichera une erreur missing return statement
.
Cette erreur est générée lorsque nous omettons par erreur l’instruction de retour de la méthode, car elle n’a pas de type de retour ou n’a pas été déclarée à l’aide du type 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";
}
}
}
}
}
}
Correction du type d’erreur d’instruction de retour manquante 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 "";
}
}
}
}
Production :
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.
LinkedIn