CodeGym /Kurse /JAVA 25 SELF /Rückgabewerte, return

Rückgabewerte, return

JAVA 25 SELF
Level 8 , Lektion 3
Verfügbar

1. Einführung

Beginnen wir mit der Frage: Warum sollte eine Methode überhaupt etwas zurückgeben? Warum kann man nicht einfach alles innerhalb der Methode erledigen und das Ergebnis auf den Bildschirm ausgeben?

Der Punkt ist: Oft müssen wir nicht nur eine Aktion ausführen, sondern ein Ergebnis erhalten, das später in anderen Teilen des Programms nützlich ist. Zum Beispiel:

  • Eine Methode berechnet die Summe zweier Zahlen und gibt sie zurück, damit wir das Ergebnis für weitere Berechnungen verwenden können.
  • Eine Methode stellt fest, ob eine Zahl gerade ist, und gibt true oder false zurück, damit wir eine Entscheidung treffen können.
  • Eine Methode gibt einen Begrüßungstext für den Benutzer zurück, und wir entscheiden, wohin wir ihn geben – auf dem Bildschirm ausgeben, in eine Datei schreiben oder über das Netzwerk senden.

Wenn Methoden immer nur das Ergebnis ausgäben, wäre unser Programm starr an ein einziges Szenario gebunden und die Logik ließe sich nur schwer wiederverwenden. Ein Rückgabewert macht Methoden flexibel und universell.

Analogie

Stellen Sie sich einen Kaffeeautomaten vor. Sie werfen Geld ein, drücken eine Taste – und bekommen Kaffee. Wenn der Automat nur laut sagen würde „Der Kaffee ist fertig!“ (aber keinen Kaffee ausgeben würde), wären Sie nicht erfreut. Genauso mit Methoden: Man möchte nicht nur „Fertig!“ hören, sondern ein Ergebnis erhalten.

2. Rückgabetyp: Was kann eine Methode zurückgeben

In Java geben Sie beim Deklarieren einer Methode den Rückgabetyp an – das kann jeder Typ sein: int, double, String, boolean, ein Array oder sogar ein Objekt Ihrer eigenen Klasse. Wenn die Methode nichts zurückgibt, schreiben wir void.

Syntax:

return_type NameOfMethod(parameters)
{
    // Methodenkörper
}
Methodensignatur

Beispiele:

int sum(int a, int b) 
{
    // gibt int zurück
}

String getGreeting(String name) 
{
    // gibt String zurück
}

boolean isEven(int number) 
{
    // gibt boolean zurück
}

void printHello() 
{
    // gibt nichts zurück - führt nur eine Aktion aus
}

Wichtig! Der Rückgabetyp ist das „Versprechen“ der Methode: Sie muss einen Wert dieses Typs zurückgeben. Wenn Sie versprochen haben, int zurückzugeben, aber einen String zurückgeben, ist der Compiler verärgert und lässt das Programm nicht kompilieren.

3. Der Operator return: Wie gibt man einen Wert aus einer Methode zurück

Um das Ergebnis der Methode tatsächlich „nach außen“ zu geben, wird der Operator return verwendet. Dieses Schlüsselwort sagt: „Hier, nimm das Ergebnis – und damit ist meine Arbeit beendet.“

int sum(int a, int b) 
{
    int result = a + b;
    return result; // geben das Ergebnis zurück
}
Rückgabe eines Werts mit return

Es geht auch kürzer:

int sum(int a, int b) 
{
    return a + b;
}

Wenn die Methode zur Zeile return gelangt, beendet sie die Ausführung, gibt den angegebenen Wert zurück und übergibt ihn an die Stelle, von der sie aufgerufen wurde.

Wichtig: Der Typ des Werts nach return muss mit dem deklarierten Typ der Methode übereinstimmen.

4. Verwendung des Rückgabewerts: Was macht man damit?

Wenn eine Methode einen Wert zurückgibt, können Sie:

  • ihn in einer Variablen speichern.
  • <
  • ihn direkt in einem Ausdruck verwenden.
  • ihn an eine andere Methode übergeben.
int result = sum(5, 7); // in einer Variablen speichern
System.out.println(result); // Ergebnis ausgeben

System.out.println(sum(10, 20)); // direkt ausgeben

if (isEven(42)) 
{
    System.out.println("Die Zahl ist gerade!");
}

Beispiel: Methode, die einen String zurückgibt

String getGreeting(String name) 
{
    return "Hallo, " + name + "!";
}

// Verwendung:
String greeting = getGreeting("Alisa");
System.out.println(greeting); // Hallo, Alisa!

5. Praxis: Beispiele für Methoden mit Rückgabewert

Methode, die das Maximum aus zwei Zahlen zurückgibt

int max(int a, int b) 
{
    if (a > b) 
    {
        return a;
    } 
    else 
    {
        return b;
    }
}

Es geht sogar noch kürzer, wenn Sie bereits den ternären Operator beherrschen:

int max(int a, int b) 
{
    return (a > b) ? a : b;
}

Verwendung:

int maximum = max(10, 25);
System.out.println("Maximum: " + maximum); // Maximum: 25

Methode, die true zurückgibt, wenn die Zahl gerade ist

boolean isEven(int number) 
{
    return number % 2 == 0;
}

Verwendung:

if (isEven(18)) 
{
    System.out.println("Die Zahl ist gerade!");
} 
else 
{
    System.out.println("Die Zahl ist ungerade!");
}

Methode, die die Summe der Array-Elemente zurückgibt

int sumArray(int[] arr) 
{
    int sum = 0;
    for (int i = 0; i < arr.length; i++) 
    {
        sum += arr[i];
    }
    return sum;
}

Verwendung:

int[] grades = {5, 4, 3, 5, 4};
int total = sumArray(grades);
System.out.println("Summe der Noten: " + total);

6. Was passiert beim Aufruf einer Methode mit return

Wenn Sie eine Methode mit Rückgabewert aufrufen, „springt“ die Programmausführung sozusagen in die Methode hinein, führt deren Code aus, gelangt zu return, gibt den Wert zurück – und setzt ihn an die Aufrufstelle ein.

Schematisch:

int a = 2;
int b = 3;
int c = sum(a, b); // hier wird sum(2, 3) aufgerufen, 5 wird zurückgegeben, c wird 5

Flussdiagramm

        graph TD
        A["main"] --> B["sum(a, b)"]
        B --> C[Berechnungen]
        C --> D[return result]
        D -->|Ergebnis wird zurückgegeben| A
    

7. Nützliche Feinheiten

return beendet die Ausführung der Methode

Sobald in einer Methode return auftritt, wird die Ausführung der Methode sofort beendet. Alles, was danach steht, wird nicht ausgeführt.

int test()
{
    return 42;
    System.out.println("Das wird nicht ausgegeben"); // unreachable
}

return in einer Methode mit dem Typ void

In einer void-Methode (die nichts zurückgibt) kann return ohne Wert verwendet werden – einfach um die Ausführung der Methode vorzeitig zu beenden, z. B. bei einer bestimmten Bedingung.

void printPositive(int number)
{
    if (number <= 0) 
    {
        System.out.println("Die Zahl ist nicht positiv!");
        return; // wir verlassen die Methode einfach
    }
    System.out.println("Zahl: " + number);
}

8. Typische Fehler im Umgang mit return

Fehler Nr. 1: Nicht alle Pfade geben einen Wert zurück

int getSign(int number)
{
    if (number > 0) 
    {
        return 1;
    }
    // Und wenn number <= 0 ist? Kein return!
}
// Fehler: Nicht alle Zweige des Codes geben einen Wert zurück

So beheben Sie das: immer ein return in allen Ausführungspfaden vorsehen.

int getSign(int number)
{
    if (number > 0) 
    {
        return 1;
    } 
    else if (number < 0) 
    {
        return -1;
    } 
    else 
    {
        return 0;
    }
}

Fehler Nr. 2: Falscher Rückgabetyp

int getNumber()
{
    return "42"; // Fehler! Erwartet wurde int, nicht String
}

Fehler Nr. 3: return nach return

int test()
{
    return 5;
    System.out.println("Das wird nicht ausgeführt"); // unreachable statement
}

Fehler Nr. 4: return mit Ausdruck in einer void-Methode

void printSomething()
{
    return 42; // Fehler! Eine void-Methode kann keinen Wert zurückgeben
}

Fehler Nr. 5: Rückgabewert wird ignoriert

sum(10, 20); // und das war's? Ergebnis ist weg!

Wenn Sie den Rückgabewert nicht verwenden, geht er einfach verloren. Vergessen Sie nicht, ihn zu speichern oder im Code weiterzugeben!

Fehler Nr. 6: Erwartung, dass return etwas ausgibt

int result = sum(2, 3);
// return gibt nichts aus!
// Sie müssen explizit ausgeben:
System.out.println(result);
1
Aufgabe
JAVA 25 SELF, Level 8, Lektion 3
Gesperrt
Intelligenter Assistent für personalisierte Ansprachen 🤖
Intelligenter Assistent für personalisierte Ansprachen 🤖
1
Aufgabe
JAVA 25 SELF, Level 8, Lektion 3
Gesperrt
Paritätsdetektor für ein Lernquiz ❓
Paritätsdetektor für ein Lernquiz ❓
1
Aufgabe
JAVA 25 SELF, Level 8, Lektion 3
Gesperrt
Auswahl des Gewinners im Punktewettbewerb 🏆
Auswahl des Gewinners im Punktewettbewerb 🏆
1
Aufgabe
JAVA 25 SELF, Level 8, Lektion 3
Gesperrt
Gesamtpunktzahl aller Tests eines Schülers 📚
Gesamtpunktzahl aller Tests eines Schülers 📚
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION