K-EL/Schleifen/Zählschleifen
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
= Zählschleifen =
<language>Java</language>
== Einführung ==
Das folgende Beispiel zeigt eine Zählschleife in Aktion:
Das Programm gibt einfach die ersten zehn natürlichen Zahlen aus.
<run id="4fd9088290651">
int i;
for(i = 1; i <= 10; i = i + 1) {
System.out.println(i);
}
</run>
Wir erinnern uns nocheinmal an den allgemeinen Aufbau einer Zählschleife:
for(STARTWERT; ENDWERT; SCHRITTWEITE);
Startwert: $ i = 1 $
Endwert: $ i <= 10$
Schrittweite: $ i = i + 1$
Statt die Schrittweite mit $ i = i + 1$ anzugeben können wir auch verkürzt $ i++$ Schreiben:
<run id="4fd9088290760">
int i;
for(i = 1; i <= 10; i++) {
System.out.println(i);
}
</run>
$ i++$ erhöht einfach den Wert von $ i$ um 1:
<run id="4fd90882907de">
int i = 0;
System.out.println("i hat den Wert" + i);
i++; // Wert von i um eins erhöhen
System.out.println("Jetzt hat i den Wert " + i);
i++; // Wert von i um eins erhöhen
System.out.println("Jetzt hat i den Wert " + i);
i++; // Wert von i um eins erhöhen
System.out.println("Jetzt hat i den Wert " + i);
</run>
===Aufgabe===
Schau dir folgenden Quelltext an und bearbeite die darunter aufgeführten Aufgaben:
<run id="4fd90e5ae3431">
int i;
for(i=0;0<10;i++) {
System.out.println(i)
}
</run>
* Verändere den Quelltext so, dass die Zahlen nun nicht von 0 bis 9, sondern in umgekehrter Reihenfolge ausgegeben werden. [Tipp: Neben $i++$ gibt es auch $i--$]
* Verändere den Quelltext so, dass bei einer geraden Zahl "[akt. Wert von i] ist eine gerade Zahl" und sonst "[akt. Wert von i] ist eine ungerade Zahl".
[Hinweis: Nutze für die Bedingung der Verzweigung die Division mit Rest. $i%2$ berechnet den Rest bei der Division des Wertes von i durch 2. Der Rest ist 0, wenn i gerade ist, sonst 1.]
== Muster ==
Mit Schleifen kann man neben allerlei sinnvollen Sachen auch schicke, weniger sinnvolle Muster kreieren:
[[Bild:Elephan_MusterSterne.png]]
<run id="4fd90ca5a7e8b">
int i;
int k;
for (i=1; i<10; i++) {
for(k=1; k<=i; k++) {
System.out.print('*'); // Mit der zweiten Schleife werden nun i Sterne nebeneinander gezeichnet
}
System.out.println(); // Am Ende der Zeile einen Zeilenumbruch
}
</run>
=== Aufgaben ===
(1) Ändere den Quelltext so ab, dass folgendes Muster entsteht:
<pre>
*
**
***
****
***
**
*
</pre>
(2) Ändere den Quelltext nun so ab, dass ein Tannenbaum gezeichnet wird:
<pre>
*
***
*****
*******
*********
***********
***
***
</pre>