© 2005 Pohlig-Taulien Schleifen mit der Turtle November 2005 Informatik Grundkurse 11 -13 mit Java 1 Spielen mit der Turtle © 2005 Pohlig-Taulien Nur 1 mal den Button Zeichne! drücken oder 6 mal den Button Zeichne! drücken oder November 2005 Informatik Grundkurse 11 -13 mit Java 2 for-Schleife © 2005 Pohlig-Taulien For-Schleife: Tue <n>-Mal Anweisungsblock Syntax der For-Schleife for( int i = 0 ; i < 6 ; i++ ) Bedingung muss wahr sein, damit Schleifenkörper abgearbeitet wird Informatik Grundkurse 11 -13 mit Java Zählvariable initialisieren bzw. deklarieren und initialisieren: November 2005 Inkrementieren der Zählvariablen 3 Übung © 2005 Pohlig-Taulien Schreiben Sie unter Verwendung einer for-Schleife ein Programm, das ein ganzes regelmäßiges Sechseck zeichnet, wenn man einmal auf den zeichne! -Schalter klickt. Lösung: public void zeichne() { for(int i=0; i<6; i++){ t1.forward(100); t1.right(60); } } November 2005 Informatik Grundkurse 11 -13 mit Java 4 Die getMethoden der Turtle © 2005 Pohlig-Taulien November 2005 Informatik Grundkurse 11 -13 mit Java 5 © 2005 Pohlig-Taulien Benutzung von getOrientation() t.getOrientation() liefert für die Turtle t den momentanen Orientierungswinkel, der mit 90 Grad verglichen wird == (Prüfen auf Gleichheit) != (Prüfen auf Ungleichheit) November 2005 Informatik Grundkurse 11 -13 mit Java 6 Die do-while-Schleife Do-While-Schleife Syntax: wiederhole © 2005 Pohlig-Taulien Anweisungsblock solange Bedingung wahr do{ .. } while( t.getOrientation()!=90 ); Solange diese Bedingung Bemerkung: erfüllt ist, wird der Die Schleife wird mindestens einmal Schleifenkörper abgearbeitet wiederholt abgearbeitet November 2005 Informatik Grundkurse 11 -13 mit Java 7 Übung © 2005 Pohlig-Taulien Walter tanzt auf ein Klicken der ZeichneSchaltfläche solange den RandomWalk bis er an den Rand der ‚Tanzfläche‘ gerät. Der Ränder sind bei public zeichne() { y = -200, y = 200 x =void -200, x = 200, Lösung double x,y; do{ Die Antworten auf zwei ja-nein-Fragen lassen sich walter.forward(30*Math.random()); mit oder (||) oder und (&&) verknüpfen. walter.right(360*Math.random()); x = walter.getX(); y = walter.getY(); } while (x>-200 && x<200 && y >-200 && y < 200); } November 2005 Informatik Grundkurse 11 -13 mit Java 8 Die while-Schleife © 2005 Pohlig-Taulien While-Schleife wiederhole solange Bedingung wahr Syntax: while( Anweisungsblock ){ … } Hier steht die Bedingung, die erfüllt sein muss, damit der Schleifenkörper abgearbeitet wird. November 2005 Informatik Grundkurse 11 -13 mit Java 9 Was ist da los? © 2005 Pohlig-Taulien Nichts!! Warum?? Was passiert, wenn man den Button Zeichne! Anklickt? Eine While-Schleife wird unter Umständen gar nicht abgearbeitet, eine Do-While-Schleife immer mindestens einmal! November 2005 Informatik Grundkurse 11 -13 mit Java 10 Übung © 2005 Pohlig-Taulien Die Turtle führt folgende Anweisungen durch: t1.forward(schritt); public void zeichne() { t1.right(90); double schritt = 150; while (schritt Nach jedem Schritt soll>=5){ sein Wert um 10% t1.forward(schritt); verringert werden. Dies geht so weiter, t1.right(90); solange dieschritt Schrittweite 5 Pixel nicht *= 0.9; unterschritten hat. } Lösung } November 2005 Informatik Grundkurse 11 -13 mit Java 11