Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Jetzt lerne ich Java 6

Übung Sägezahn

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Zeit für eine Festigung des gelernten Wissens: Wie in einem vorgegeben Beispiel soll das Programm zunehmend viele Sternchen ausgeben - und das mehrfach. Klingt nach Schleifen? Das ist richtig! - Aber wie viele Schleifen verwenden Sie?
10:19

Transkript

Ich weiß ein bisschen schon einige Zeit herum, aber wir können doch trotzdem ein ganz nettes Beispiel machen. Das, was wir jetzt vorhaben am Abschluss unsere Kapitel über Ablaufsteuerung, ist ein kleiner Tannenbaumgenerator oder wie ich Ihnen hier etwas umgebaut habe, weil wir Ihnen auf einer Java-Konsole machen einen Sägezahn-Generator. Dieser Sägezahn-Generator, wir können uns das Ergebnis hier mal anschauen, generiert Reihen mit Sternen. Sie sehen jetzt hier, dass wir so insgesamt drei Sägezähne haben, und jeder Sägezahn hat eine gewisse Anzahl an Zeilen. Das halten wir später Stufenhöhen. Wir haben hier also eine Stufenhöhe von 4 Zeilen, und wir haben eben eine Stufenanzahl von 3. Und das möcht ich gerne in meinm Programm als Parameter vorgeben, das heißt, Stufenhöhe und Stufenanzahl wird von mir eingestellt, kann später eben aus einer Texteingabe, aus einer graphischen Oberfläche oder ähnlich bekommen, und, ja, dann wird entsprechend einen Sägezahn generiert. Sie können, wenn Sie wollen jetzt einfach mal anfangen, auf einem Blatt Papier das Ganze durchzuspielen, wieso etwas gehen könnte. Es funktioniert mit Schleifen. Das ist, soviel kann ich Ihnen dazu verraten, und eigentlich müssten Sie dazu jetzt schon auch in der Lage sein. Ein guter Tipp von mir zum Lernen von Programmierung ist, versuchen Sie es, zuerst einmal selbst das nachvollziehen. Von Skripten ist es meistens logisch und man denkt:" Okay, das ist alles einfach"! Aber wenn man dann anfängt, das eigene Problem zu lösen, hmm, damit schon kniffliger, und dann es ist gut, solche einfachen Fingerübungen hier zu machen, denn nur so lernen Sie. Jetzt aber genug mit dem erhobenen Zeigefinger. Jetzt sollten wir das doch gemeinsam mal angehen. Wir legen uns also wieder schnell ein neues Projekt an: eine Java-Application. Wri nennen das Ganze mal die "Saegezahn", mein Package. Und schon strahlt uns eine leere Mengklasse entgegen, und jetzt können wir los. Das Erste, was ich mit hier setze, sind meine Vorgaben. Ich habe hier gesagt, ich möchte zwei Dinge gerne vorgeben können, sein int (Integer) mit der stufenhoehe. Das sind also die Anzahl der Zeilen innerhalb eines Sägezahns, geben wir 4 vielleich mal, und ich hätte auch noch gerne eine Stufenanzahl, und die hat eben in diesem Beispiel ein 3, können wir dann später auch noch ändern. Das wäre so der Startpunkt für Sie, jetzt einen eigenen Sägezahn-Generator zu schreiben. Die erste Frage, die sich häufig gestellt ist: Wie fängt man denn an? Dabei ist es ganz gut in diesem Beispiel von innen nach außen zu arbeiten. Das einfachste Problem, was wir erstmal zu lösen hätten, wäre, wie bekommt man das denn hin, in eine Zeile eine gewisse Anzahl an Sternen zu zeichnen. Sie haben mit Sicherheit auf einen Blatt Papier ausprobiert, okay, in der ersten kommt 1, dann werden 2 mehr gezeichnet, dann hätten wir 3, dann werden wieder 2 mehr gezeichnet, dann hätten wir 5 und so weiter und sofort. Das schreibt so irgendwie später nach einer Schleife, wo immer 2 dazu gerechnet werden an der Anzahl der Sterne. Aber fangen wir doch mal bei dem indessen Problem an. Ich sage Ihnen "Zeichne 5 Sterne!", und Sie müssen 4 Sterne hintereinander auf dem Bildschirm bekommen. Das wäre doch die erste Schleife, die wir bauen müssen. Das wollen wir jetzt hier direkt auch tun. Ich gehe jetzt hier in meinen Skript hinein, und wir bauen jetzt unsere erste Schleife mit der Sternanzahl. Das schreibe ich mir als Kommentar dazu Ausgabe einer Zeile mit Sternen, mit dem dafür eine Vorschleife, definieren uns einen zaehler, wenn einfach mal Sternzahl ist z von 1 bis ja, soviele Sterne werden wir benötigen, da wir momentan nicht wissen, wie viele sind, geben uns einfach nur Variable Sternanzahl, und in jedem Durchgang muss man +1 dazu rechnen, und dann können wir jetzt Schleifen rumsetzen. Ja, was nehmen wir jetzt da? System.out.println. Na ja, println gibt uns jedesmal eine neue Zeile. Dann hätten wir also 5 Sterne zum Beispiel übereinadner. Hmm, wollen wir nicht. Wir wollen eine Zeile haben, und daher nehmen wir das ln dahinten einfach mal kurz weg und sagen print, und damit bekommen wir alle Sterne in einer langen Zeile, das heißt, das erste Problem hätten wir bis zu dieser Stelle jetzt gelöst. Wir hätten nun eine gewisse Anzahl von Sternen, die wir zeichnen können. Hier bekommen wir noch einen Fehler angezeigt. Gehen wir einfach darüber und lassen das stehen. Und dann steht durch einmal zu, da hast du eine Variable Sternanzahl und die hast du noch nicht belegt. Es ist auch richtig so. Aber um den Skript zu testen, sieht hier mal ganz frech, und sagen einfach mal sternanzahl = 5. jetzt zwischen mit auf der Fehler, ich lasse das ganz mal laufen. Und wir sehen ok, und der Skript kann zum Beispiel jetzt schon mal 5 Sterne hintereinander zeichnen. Super Geschichte, oder? Versuchen wir das Ganze auch noch mit einem Stern. Sie haben einen wunderbaren Sternen-Generator geschrieben. Also, das funktioniert vom Prinzip her. Der nächste Schritt wäre, nachdem wir eine Zeile hier gezeichnet haben, brauchen wir einen Zeilenumbruch, damit die nächste Zeile gezeichnet werden kann. Und da wäre hier auf Grund dessen, dass wir keinen prinln mehr haben, sondern einen print, keinen Umbruch mehr bekommen. Das ist mir nachträglich, nachdem eben die korrekte Anzahl an Stern gezeichnet worden ist, ausgeben. Und das machen wir mal hier Zeilenumbruch erzeugen System.out.print, und dann machen wir einen \n. \n bedeutet Zeilenumbruch. Und damit werden wir auch in der nächsten Zeile. So, nachdem wir es geschafft haben, eine Zeile mit Sternen zu zeichnen, müssen wir uns jetzt natürlich darum kümmern, dass wir nicht nur eine Zeile haben wollen, sondern wir wollen eine gewisse Anzahl an Zeilen haben, und zwar entsprechend der Stufenhöhe, die wir oben festgelegt haben. Jede Stufe soll 4 Zeilen haben, das heißt, das Ganze hier muss 4 mal durchlaufen werden. Das kriegen wir mit Sicherheit auch geregelt. Also setzen wir diesen Block hier "Ausgabe eine Zeile mit Sternen" wieder in eine Schleife: for, das sind jetzt unsere Stufenhöhe, die wir hochzählen, deshalb sh=1, sh <= stufenhöhe und Stufenhöhe wird hochgezählt jetzt. Gehen wir also die Stufenhöhe durch, und dann können wir an diesem ganzen Block nämlich kurz mal einrücken, und schon haben wir den Überblick. Jetzt läuft also das Ganze hier mehrfach durch. Wenn wir das Ganze jetzt mal hier kurz ausprobieren, was daraus kommt, dann sehen wir, ok, wir bekommen wirklich 1, 2, 3, 4 Zeilen, und das ist eben hier oben diese Stufenhöhe. So weit, so gut. Das hätten wir also schon mal geschafft. Nun, jetzt ist es aber so, dass anders als in unserem Ergebnis hier die Anzahl der Sterne sich erwandelt, das heißt, im Moment hängt die Anzahl der Sterne noch hier oben von der Sternanzahl ab. Wenn ich also jetzt hier mal kurz 5 eingebe, das laufen lasse, dann sehen wir, dass alle Zeilen 5 Sterne haben. Das wäre also nicht gewollt, sondern die erste Zeil hat hier einen Stern, die nächste hat 2 mehr. Das wird mit Stern geregelt, und zwar nach jeder Zeile, die ausgegeben worden ist, müssen wir die Sternanzahl hier um 2 erhöhen. Und das ist relativ einfach, denn nach jeder Zeile haben wir auch schon einen Zeilenumbruch erzeugt, also können wir hier drunter direkt noch sagen, ok, "In der nächsten Zeile haben wir zwei Sterne mehr", also, sternanzahl = sternanzahl +2, und das war als Kurzform, indem sehen Sie noch +=2. Ja, das wäre es! Testen wir es! Und Sie haben Ihren ersten Sägezahn. Gratulation! Sie werden es kaum glauben, jetzt sind wir schon fast fertig. Wir haben bis jetzt folgendes erreicht. Wir können eine Stufenhöhe vorgeben, zum Beispiel mal 8 Stufen, und draus kommen dann ein Sägezahn mit 8 Zeilen daran. Und der Sägezahn funktioniert wunderbar. Also, das einzige, was wir jetzt noch lösen müssen, ist, wir geben, ja, eine Stufenanzahl vor, wie viele Stufen insgesamt wir haben wollen. Das steht im Moment 3, und das tun wir gar nicht, wir haben nur eine. Also, Sie haben es erraten, und das Ganze außen rum muss man wieder. Eine völlig neue Entwicklung eine Schleife. Jetzt, nun, die Frage. Vor dieser Zeile oder nach dieser Zeile? Na ja, jede Stufe beginnt wieder mit einem Stern, also dahin kommt es um den ganzen rum, also for, es wäre Stufenanzahl immer mal sa, sa <= stufenanzahl sa++. Das Ganze gibt wieder eine Schleife und direkt bevor irgendwas schief geht, nach unten. Nun, das Ganze rum in die Klammern setzen, und wer sich helfen lassen möchte rechte Maustaste Reformat Code. Dann rückt das Ganze schon mal schön ein, und man hat so ein bisschen übersichtlicher. Das ist jetzt also für die Anzahl der Stufen. Und hier nochmal die Leerzeiln rein, und das bedeutet, dass jetzt jedes Mal, wenn eine Stufe erreichtet, hier [unverständlich], das heißt, das Ganze hier läuft 3 mal. Probieren wir es! Und, das Ergebnis spricht für sich. Wir haben jetzt drei wunderschöne Sägezähne. Setzen wir hier einfach mal auf 10, und auch das funktioniert. Das ist also das Ende dieser wunderschönen Sägezahnübung. Ich hoffe, Sie konnten es nachvollziehen. Probieren Sie es einfach nochmal ein bisschen aus auf ein Blatt Papier. Ich habe auch schon einige andere Lösungen in Trainings gesehen, wo Leute wirklich mit wenigen Schleifen ausgekommen sind, manche mit break und continue und ähnlichen Dingen, aber das ist eine Lösung. Und wenn Sie einen langen Winterabend übrig haben, probieren Sie doch einfach nochmal eigene Lösungen dazu. Viel Spaß!

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!