Schleifen


Processing 2.0

Mit Schleifen kann man unter anderem den Programmablauf steuern. Wir werden uns jetzt speziell mit der for-Schleife beschäftigen. Damit kann man den zu schreibenden Code beträchtlich verkürzen, was zu weniger Fehlern und besserem Überblick führt.

Beispiel (lang, ohne Schleife): starte Applet

size (300,300);
line (10,10,190,10);
line (10,20,190,20);
line (10,30,190,30);
line (10,40,190,40);
line (10,50,190,50);
line (10,60,190,60);
line (10,70,190,70);
line (10,80,190,80);
line (10,90,190,90);
line (10,100,190,100);
line (10,110,190,110);
line (10,120,190,120);
line (10,130,190,130);
line (10,140,190,140);
line (10,150,190,150);
line (10,160,190,160);
line (10,170,190,170);
line (10,180,190,180);
line (10,190,190,190);

Beispiel (kurzer Code mit Schleife): starte Applet

size (300,300);
for (int i=10; i<width; i+=10) {
line (10,i,290,i);
}

Die Länge des Codes kann also in diesem Beispiel von 20 Zeilen auf 4 Zeilen verringert werden, ohne die Funktionsweise zu verändern.

Aufgabe: Schreibe ein Programm, das vom Mittelpunkt ausgehend immer größere Kreise auf den Schirm zeichnet. Das ganze sollte so ausshen: 

Tipp: verwende noFill(), um nur den Umriss der Ellipsen zu zeigen.

Es gibt nun die Möglichkeit, in Schleifen entweder Bedingungen zu verwenden, oder sie zu verschachteln.

Beispiel: starte Applet

size (300,300);
noFill(); //nur Umriss wird gezeigt
for (int i=10; i<width; i+=10) {
if (i%20==0){ //bleibt kein Rest bei der Division durch 20 --> Kreis
ellipse (width/2,height/2,i,i);
} else { //sonst --> Ellipse
ellipse (width/2,height/2,i+10,i);
}
}

Beispiel: starte Applet

size (300,300);
fill(127);
for (int x=10; x<width; x+=10) {
  for (int y=10; y<height; y+=10) {
    ellipse (x,y, 10, 10);
  }
} 

Hier werden für die x- und die y-Richtung je eine Schleife verwendet und Ellipsen mit 10 Pixel Radius auf den Schirm gezeichnet.

Aufgabe: Verändere das Programm so, dass die Größe der gezeichneten Ellipsen durch die Position der Maus veränder werden kann. Applet

Neben der for-Schleife gibt es auch noch die Möglichkeit einer while- Schleife. Sie wird vorwiegend in Fällen eingesetzt, in denen man von vorne herein nicht weiß, wie viele Schleifendurchläufe es geben soll.

Die while -Schleife wird durchlaufen, solange die jeweilig Bedingung erfüllt ist.

while (i>10)  {
Anweisungen
}

Advertisements

Ein Kommentar

  1. Pingback: Processing – Über dieses Weblog « processing – tutorial

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: