Arbeitsblätter für JavaKara

Rückgabewerte

Autor: Horst Gierhardt



Aufgabe: Kara steht am Anfang einer langen Spur (mit Unterbrechungen) von Kleeblättern. Er soll herausfinden, wie viele Blätter in der Spur auf den ersten laenge Plätzen liegen.



Das Neue: Karas Auftrag soll durch eine Methode zaehle(), die das Ergebnis des Zählvorgangs zurück geben soll, erledigt werden.



Lösung:

import JavaKaraProgram;

public class RueckgabeBsp extends JavaKaraProgram
{ // Anfang von RueckgabeBsp

  int zaehle(int laenge)
  {
    int anzahl=0;
    for (int i=1; i<=laenge; i++)
    {
      if (kara.onLeaf()) { anzahl++; }
      kara.move();
    }
    return anzahl; // Rueckgabe des Funktionswertes
  } // Ende von zaehle


  public void myProgram()
  {
    int wieWeit=0;
    int kleeblattAnzahl=0;
    wieWeit=tools.intInput("Wie weit soll ich suchen?");
    if (wieWeit>0)
         {
           kleeblattAnzahl=zaehle(wieWeit);
           tools.showMessage("Ich habe "+kleeblattAnzahl+
                                       " Blaetter gefunden.");
         }
    else {
           tools.showMessage("Ich habe nichts zu tun.");
         }
  }  // Ende von myProgram
} // Ende von RueckgabeBsp

Erläuterungen:

  1. Bei den bisherigen Programmen war es mitunter lästig, den Methoden immer das Wort void, was so viel wie leer bedeutet, voran zu stellen. Nun wird klar, dass die bisher eingesetzten Methoden nur Spezialfälle darstellen, bei denen kein Wert zurück gegeben wird.
  2. Bei der Methode zaehle wird deutlich, dass Methoden in Java als Funktionen (wie in der Mathematik) angesehen werden können. Der Parameter laenge ist das Argument der Funktion (in der Mathematik meistens x), die einen Funktionswert (hier zaehle) eines bestimmten Typs (hier int) zurück liefert, den man einer Variablen zuweisen kann (hier: kleeblattAnzahl = zaehle(wieWeit)). In der Mathematik würde man y=f(x) schreiben.
  3. Dem Namen der Methode wird der Typ des Rückgabewertes voran gestellt.

    Die Rückgabe eines Funktionswertes innerhalb einer Methode geschieht mit return, gefolgt vom Funktionswert. Man muss darauf achten, dass eine Methode mit einem Rückgabewert immer mit einem entsprechenden return verlassen wird.

    Einfache Methoden ohne einen Rückgabewert können auch mit einem return verlassen werden. Dann steht eben nichts hinter return.

  4. In der Programmzeile

    wieWeit = tools.intInput("Wie weit soll ich suchen?");

    wird der Text ,,Wie weit soll ich suchen?'' als Parameter vom Typ String an die Methode tools.intInput übergeben. Die Methode öffnet ein neues Fenster mit dem Stringtext und der Möglichkeit, einen Integerwert einzugeben. Der Funktionswert ist dann die eingegebene Zahl, die der Variablen wieWeit zugewiesen wird.

    Der Methodenkopf dazu: int intInput(String title)

    (Weitere Informationen dazu in der Dokumentation zu Javakara, Nov. 2000)