Schleifen
Sketch quadratreihe
Im nächsten Sketch soll eine Reihen von Quadraten gezeichnet werden. Für die Positionen und Seitenlängen der Quadrate werden dabei wieder Variable verwendet, deren Werte berechnet werden.
Die Seitenlänge der Quadrate soll 70 Pixel und ihr Abstand 10 Pixel betragen. Aus diesem Abstand ergibt sich auch die Position der linken oberen Ecke des ersten Quadrats.
Die Positionen der weiteren Quadrate können dann sehr einfach aus der vorigen Position berechnet werden (Seite+Abstand).
size(600,200);
background(255);
int seite = 70;
int abstand = 10;
int y = abstand;
int x = abstand;
rect(x,y,seite,seite);
x = x + seite +abstand;
rect(x,y,seite,seite);
x = x + seite + abstand;
// beliebig viele Wiederholungen
Dadurch ergibt sich im Sketch ein immer wiederkehrende Folge von Befehlen (Quadrat zeichnen und die neue Position berechnen).
Für eine die Wiederholung von immer wiederkehrenden Befehlen bietet die Programmiersprache Processing (und auch alle anderen Programmiersprachen) eine spezielle Anweisung an, die Wiederholungsanweisung.
for-Schleife
Eine solche Wiederholungsanweisung wird als Schleife bezeichnet. Es gibt mehrere Formen von solchen Schleifen. Eine davon ist die for-Schleife.
size(600,200);
background(255);
int seite = 70;
int abstand = 10;
int y = abstand;
int x = abstand;
for (int index=0; index<5; index++){
rect(x,y,seite,seite);
x = x + seite + abstand;
}
Anstatt der Wiederholungen der Programmzeilen erledigt die for-Schleife die Wiederholungen.
int index=0 |
die Vereinbarung der Laufvariable und ihre Initialisierung |
index<5 |
die Laufbedingung: Die Anweisungen innerhalb der geschwungenen Klammern werden solange wiederholt, solange die Bedingung zutrifft, d.h. solange der Wert der Laufvariable kleiner als 5 ist. |
index++ |
Verändern der Laufvariable : Der Wert der Laufvariable wird um 1 erhöht. Dies ist eine Spezialanweisung und könnte auch durch |
while-schleife
Möchte man die gesamte Breite des Fensters mit Quadraten füllen, dann kann man durch Versuch und Irrtum die Anzahl solange erhöhen, bis die Reihe bis zum Fensterrand reicht (durch etwas Mathematik könnte die nötige Anzahl auch berechnet werden).
Eine alternative Herangehensweise bietet aber die while-Schleife
size(600,200);
background(255);
int seite = 70;
int abstand = 10;
int y = abstand;
int x = abstand;
while (x < width-seite+abstand){
rect(x,y,seite,seite);
x = x + seite + abstand;
}
Die while-Schleife wird durch eine Laufbedingung gesteuert. Die Anweisung innerhalb der geschlungenen Klammern werden solange wiederholt solange eine Bedingung erfüllt ist. Die hier verwendete Bedingung prüft, ob noch für ein weiteres Quadrat Platz im Fenster ist. Der Vorteil hierbei ist, dass sich die Anzahl der gezeichneten Quadrate automatisch an die Fenstergröße anpasst.
Die Form von Schleife wird als kopfgesteuert oder abweisend bezeichnet, weil die Bedindung geprüft wird bevor eine Anweisung ausgeführt wird.