Korrigieren den Fehlertyp Missing Return Statement in Java

Rupam Yadav 12 Oktober 2023
  1. Warum tritt der Fehler missing return statement in Java auf
  2. Korrigieren den Fehlertyp Missing Return Statement in Java
Korrigieren den Fehlertyp Missing Return Statement in Java

Der Java-Compiler meldet möglicherweise den Fehler missing return statement, wenn die Schleifen if, for oder while in einer Methode verwendet werden. Dieser Artikel erklärt, warum das passiert und wie man damit umgeht.

Warum tritt der Fehler missing return statement in Java auf

Einer der häufigsten Java-Fehler ist ein missing return statement.

Es ist ein Fehler, der während des Kompilierungsprozesses auftritt. Wie die Aussage schon sagt, wird das Problem normalerweise durch eine fehlende return-Anweisung im Programm verursacht.

Nehmen wir ein Programm als Referenz, das diesen Fehler erzeugen kann.

Hier ist eine Methode, die eine Variable vom Typ String zurückgibt, nachdem festgestellt wurde, ob eine als Argument übergebene Zahl eine Primzahl ist oder nicht. Diese Methode verwendet die Schleifen if, else und for.

Wenn wir uns dieses Programm genau ansehen, sehen wir das erste Paar der if-else-Schleife, die jeweils einen String zurückgeben. In der else-Schleife führen wir eine for-Schleife aus, die wiederum mit if und else einen String zurückliefert.

Es sieht auf den ersten Blick in Ordnung aus. Aber nach sorgfältiger Prüfung können wir feststellen, dass die else-Anweisung nichts zurückgibt, falls die for-Schleife fehlschlägt.

Mit anderen Worten, der Compiler weiß nicht, dass die for-Schleife innerhalb der else-Schleife einen String zurückgibt. Es schafft Mehrdeutigkeit.

Selbst wenn die for-Schleife läuft und einen Typ zurückgibt, muss der Compiler davon ausgehen, dass er möglicherweise nichts zurückgibt. Um diese Verwirrung für den Compiler zu beseitigen, sollte die else-Methode einen String-Typ zurückgeben.

Die Java-Dokumentation schlägt vor, dass, wenn wir eine Methode mit einem Rückgabetyp deklarieren, eine return-Anweisung am Ende der Methode stehen muss. Andernfalls zeigt der Compiler den Fehler missing return statement an.

Dieser Fehler wird ausgelöst, wenn wir versehentlich die return-Anweisung der Methode weglassen, da sie keinen Rückgabetyp hat oder nicht mit dem Typ void deklariert wurde.

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";
          }
        }
      }
    }
  }
}

Korrigieren den Fehlertyp Missing Return Statement in 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 "";
      }
    }
  }
}

Ausgabe:

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

Verwandter Artikel - Java Error