1. Die returnAussage

Denken Sie, Sie haben bereits alles über Java-Methoden gelernt? Was auch immer Sie zu wissen glauben, Sie wissen immer noch nicht die Hälfte davon.

Beginnen wir mit etwas Einfachem. Beispielsweise verfügt Java über eine Return- Anweisung, mit der Sie die aufrufende Methode sofort beenden können. Hier ist die Aussage:

return;

Es ist ganz einfach: das einzelne Wort, returngefolgt von einem Semikolon. Sobald das Programm diese Anweisung ausführt, wird die aktuelle Methode sofort beendet und der Aufruf fortgesetzt.

Wenn returnin der Methode aufgerufen wird main, dann mainwird die Methode sofort beendet und mit ihr das gesamte Programm.

Beispiel:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


Die fill Methode füllt einen Teil des übergebenen Arrays mit value.
Der zu füllende Teil des Arrays wird durch die Indizes from und definiert to.
Wenn from kleiner 0oder to größer als die Länge des Arrays ist, wird die Methode sofort beendet.

Das obige Programm verfügt über eine fillMethode, die das übergebene Array mit füllt value. Es füllt nicht das gesamte Array, sondern nur den durch die Indizes fromund angegebenen Teil to.

Zu Beginn der fill Methode werden die übergebenen Werte auf ihre Gültigkeit überprüft. Wenn fromkleiner als 0 oder to größer als die Länge des Arrays, wird die fillMethode sofort beendet (führt eine returnAnweisung aus).

Diese returnAussage ist nützlich: Praktisch jede Methode in Java hat eine, und hier ist der Grund dafür.



2. Methoden mit Ergebnis,void

Denken Sie daran, wir haben einmal herausgefunden, dass es Aussagen und Ausdrücke gibt . Ein Ausdruck hat im Gegensatz zu einer Anweisung einen Wert, der irgendwo verwendet werden kann.

Und in Java können Methoden einen Wert haben . Und das ist eine sehr gute Nachricht: Methoden sind nicht nur in der Lage, basierend auf den Eingabeparametern etwas zu tun, sondern beispielsweise auch etwas auszuwerten und das Ergebnis der Berechnung zurückzugeben .

Solche Methoden sind Ihnen übrigens schon begegnet:

double delta = Math.abs(d1 - d2);
Die abs()Methode gibt ein Double zurück
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Die nextInt()Methode gibt eine zurückint
String str = "Hello";
String s2 = str.toUpperCase();

Die toUpperCase()Methode gibt a zurückString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Die copyOf()Methode gibt eine zurückint[]

Jede Methode kann nur einen Wert eines vorgegebenen Typs zurückgeben. Der Rückgabetyp wird bei der Deklaration der Methode bestimmt:

public static Type name(parameters)
{
  method body
}

Wobei name der Name der Methode, parameters die Liste der Methodenparameter und type der Typ des Ergebnisses sind, das die Methode zurückgibt.

Für Methoden, die nichts zurückgeben, gibt es einen speziellen Platzhaltertyp: void.

Schreiben Sie Ihre eigene Methode und möchten nichts an die aufrufende Methode zurückgeben? Deklarieren Sie einfach den Typ der Methode als voidund das Problem ist gelöst. Auch in Java gibt es viele solcher Methoden.


3. Ein Ergebnis zurückgeben

Wir haben gerade herausgefunden, wie man eine Methode deklariert, die das Ergebnis einer Berechnung zurückgibt, aber wie bringen wir dieses Ergebnis in die Methode selbst um?

Auch hier hilft uns die returnAussage weiter. Die Übergabe eines Ergebnisses einer Methode sieht folgendermaßen aus:

return value;

Wo returnist eine Anweisung, die die Methode sofort beendet? Und value ist der Wert, den die Methode beim Beenden an die aufrufende Methode zurückgibt. Der Typ valuemuss mit dem typein der Methodendeklaration angegebenen Typ übereinstimmen.

Beispiel 1. Die Methode berechnet das Minimum von zwei Zahlen:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Die Methode gibt das Minimum von zwei Zahlen zurück.

Wenn a < b
zurück, a
sonst
zurückb

Beispiel 2. Die Methode dupliziert die ihr übergebene Zeichenfolge nmehrmals:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Die Methode benötigt zwei Parameter – eine Zeichenfolge und die Häufigkeit, mit der die Zeichenfolge wiederholt werden soll.
Für das zukünftige Ergebnis wird eine leere Zeichenfolge erstellt.

In einer Schleife mit timesIterationen wird der Zeichenfolge ein Leerzeichen und strdie Zeichenfolge hinzugefügt result.

Der String resultwird als Ergebnis der Methode zurückgegeben.

Beispiel 3: Die Methode berechnet das Maximum zweier Zahlen mit dem ternären Operator:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Die Methode gibt das Maximum von zwei Zahlen zurück.

return (wenn a > b, dann a, sonst b)