K-EL/Schleifen/Bedingte Schleifen
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
<language>Java</language>
== bedingte Schleifen ==
Wir erinnern uns an den gennerellen Aufbau einer bedingten Schleife. Bei dieser Art Schleife wurden die Anweisungen im Schleifenkörper, im Gegensatz zu Zählschleifen, nicht eine feste Anzahl Male ausgeführt, sondern solange wiederhohlt, wie eine gewisse Bedingung wahr war:
<code hidden>/*</code>
<code id="4fe826dd6f1df">
SOLANGE (Bedingung) {
Anweisung 1 ...;
Anweisung 2 ...;
Anweisung 3 ...;
...
}
</code>
<code hidden>*/</code>
In der Programmierung setzen wir dies wie folgt um:
<code hidden>/*</code>
<code id="4fe826dd6f249">
while (Bedingung) {
Anweisung 1;
Anweisung 2;
Anweisung 3;
}
</code>
<code hidden>*/</code>
dabei können für die Bedingung alle Operationen verwendet werden, die wir schon bei Verzweigungen kennengleernt haben. Bspw. kann die Schleife so lange ausgeführt werden, solange eine Zahl kleiner ist als die andere:
<run id="4fe826dd6f2bc">
int a = 5;
int b = 20;
while (a < b) { \\ Wiederhole solange a<b
b = b - a;
}
System.out.println(b);
</run>
Das Beispiel berechnet, welchen Rest b beim Teilen durch a lässt.
== Beispiel ==
<code id="KEL-einAusgabe-1" hidden>
String eingabe(String text) {
return JOptionPane.showInputDialog(null, text);
}
void ausgabe(String text){
JOptionPane.showMessageDialog(null,text);
}
</code>
Im folgenden ist ein kleines Fitnessprogramm dargestellt. Solange der Nutzer bei Nachfragen ja angibt, wird die Schleife stets wiederholt. Das 1. bis 4. Workout besteht aus 5 Liegestützen. Anschließend muss der Sportler nur noch 3 Hock-Streck-Sprünge pro Workout absolvieren.
<run id="4fd8d41e6be3a">
int anzWorkout = 0;
var nutzerEingabe = eingabe("Kann's losgehen?");
while(nutzerEingabe.equals("ja")) {
if(i < 5) {
ausgabe("Los geht's ... 5 Liegestütze");
}
else {
ausgabe("Gut! Jetzt 3 Hock-Streck-Sprünge.");
}
anzWorkout = anzWorkout + 1;
nutzerEingabe = eingabe("Weiter?"); // Nutzer fragen, ob er noch kann -> nur falls er noch kraft hat, wird die Schleife nochmal durchlaufen
}
System.out.println("Wow! Du hast das Workout " + anzWorkout + "x geschafft.");
</run>