Correction du type d'erreur d'instruction de retour manquante en Java

Rupam Yadav 12 octobre 2023
  1. Pourquoi l’erreur missing return statement se produit-elle en Java
  2. Correction du type d’erreur d’instruction de retour manquante 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
Auteur: Rupam Yadav
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

Article connexe - Java Error