Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Einführungsphase

Kirchenfenster zeichnen (FOR-Schleife)

Die Kirchenfenster sind alles langgezogene Rechtecke mit den Maßen der Türflügel. Die y-Position ist 2 Türbreiten oberhalb der Unterkante der Kirche abzüglich der Türhöhe, die der Fensterhöhe entspricht.

Jetzt sind allerdings mehrere Fenster zu zeichnen, die jeweils 2 Türbreiten von einer ersten Fensterposition in x-Richtung abweichen (1 Türbreite für die Fensterbreite und 1 Türbreite als Abstand der Fenster). Das könnten wir jetzt natürlich dadurch erreichen, dass wir entsprechend viele Zeichenbefehle aufführen.

Das ist aber der klassische Fall für eine Wiederholungsanweisung. Wir verwenden hier eine Zählschleife, die uns die einzelnen Fenster durchzählt und dadurch die x-Position variiert.

for (int j=1;j<=7;j++)
  grGrafik.drawRect(xPos+iTurmbreite+j*2*iTürbreite,yPos+iTurmhöhe-2*iTürbreite-iTürhöhe,iTürbreite,iTürhöhe);

Allgemeine Form der FOR-Schleife:

for (<Variable>=<Startwert>;<Laufbedingung>;<Variablenveränderung>)
  <Anweisungen>

Dabei wird die FOR-Schleife dann ausgeführt, wenn die Variable aus dem Startwert durch die Variablenveränderung die Laufbedingung erfüllt.

In unserem Fall starten wir mit j=1, der Variableninhalt wird durch j++ stets um eine Einheit erhöht: j=2,3,4... Auf Grund der Laufbedingung wird das solange gemacht wie j<=7 ist. Also nimmt j nacheinander die Werte 1, 2, 3, 4, 5, 6 und 7 an.

In der drawRect-Anweisung wird dann auf diese sog. Laufvariable Bezug genommen. Beim ersten Durchlauf der Schleife beginnt das Fenster an der x-Position, die 1*2 Türbreiten vom rechten Turmrand entfernt ist. Beim zweiten Durchlauf an der x-Position, die 2*2 Türbreiten vom rechten Turmrand entfernt ist, usw. bis zum siebten Durchlauf, der das Fenster an der x-Position beginnen lässt, die 7*2 Türbreiten vom rechten Turmrand entfernt ist.

Das komplette Listing der Methode KircheZeichnen 
(für diejenigen, die sie mal zusammenhängend sehen wollen).


© Ralph-Erich Hildebrandt, 24. September 2006