Benutzer:Ernst Schreier/testbereich

Aus ZUM-Unterrichten

gelöschte Kapitel

Versteckspiel

{{Idee| Mit Hilfe des folgenden Beispiels lässt sich die while-Schleife einführen. Besser ist allerdings, wenn man es mit einer for-Schleife realisiert. D.h. falls man es nutzt, sollte man dieses Beispiel vor der for-Schleife behandeln.

Versteckspiel
Als Suchender muss man zunächst bis 100 zählen, dann laut „Ich komme...“ rufen. Erst dann darf man zum Suchen aufbrechen.

Dieses simple Spiel ist ein einfacher Algorithmus:

VERSTECKSPIELZÄHLUNG
Die erste Zahl ist 1.
Prüfe, ob die 100 erreicht wurde
Wenn das noch nicht erfüllt ist, sage die Zahl und erhöhe die Zahl um eins.
Wenn doch, dann rufe „Ich komme“

Mit while (engl. solange) lassen sich Programmabläufe abhängig von einer Bedingung wiederholen. Die Bedingung wird vor Ausführung der Anweisung abgefragt ("prechecked loop", "kopfgesteuerte Schleife").

Solange <Bedingung erfüllt> führe <Anweisung> aus.
Java-Syntax
   while (Bedingung) 
   {
      Anweisungsblock (was soll wiederholt werden?)
   }

So sähe das Verstecken-Beispiel als Methode der Klasse Verstecken aus. Der Computer schreibt die Zahlen von 1 bis zahl in die Konsole.

Hinweis
Wenn die oberen Zahlen nicht mehr zu sehen sind, liegt das an der Konsole, die nur begrenzt viele Zeilen zulässt. Das Problem kann man umgehen, indem man statt println ein print einsetzt. Dann wird nicht bei jeder Zahl eine neue Zeile begonnen.
public class Verstecken
{
      public void zaehleBisZahlundRufe(int zahl)
      {
        int x;                            // Eine Zählvariable x
        x=1;                              // Anfangswert für x
        while (x <= zahl) {   
            System.out.println (x);       // schreibe x auf die Konsole
            x++;                          // erhöhe x um 1
        }
        System.out.println ("Ich komme...!"); 
      }
}

Übung
  1. Analysieren Sie die Methode zaehleBisZahlundRufe (int zahl), indem Sie folgende Dinge zunächst durchdenken und dann testen:
    • Was passiert, wenn Sie beim Methodenaufruf 1 als zahl übergeben.
    • Was passiert, wenn Sie beim Methodenaufruf negative Zahlen eingeben.
    • Was verändert sich, wenn die Zeile mit x++ über der System.out Zeile steht?
    • Wie können Sie in Zweierschritten zählen?
    • Warum wird „Ich komme“ nur ein mal ausgegeben?
  2. Verändern Sie die Methode so, dass ein Coutntdown heruntergezählt wird.
  3. Lassen Sie neben zahl auch die Variable schwrittweite übergeben. Sie soll bestimmen, in wie großen Schritten heraufgezählt werden soll (z.B. Schrittwete 3 ergibt: 1, 4, 7, 10...