Java wenn fertig, dann wiederholen?

4 Antworten

Hallo,

du brauchst nicht nur "eine Art Schleife", du brauchst ganz sicher eine Schleife. Die gibt's nämlich in Java. Deiner Formulierung kann man nur schwer entnehmen, was genau du benötigst, aber hier mal ein paar Schleifentypen, die sich anbieten würden.

Die Do-While-Schleife:

do {
    // Code
} while(<Bedingung>);

Anstelle von <Bedingung> musst du einen boolschen Ausdruck einsetzen. Etwa:

boolean end = false;
do {
    // Code
} while(!end);

Solange die Aussage in der Klammer wahr ist, läuft die Schleife weiter. D.h., der Code wird ausgeführt, dann wird geprüft, ob die Aussage wahr ist, falls ja, wieder ausgeführt, und immer so weiter.

Ähnlich ist da die while-Schleife:

while(<Bedingung>) {
    // Code
}

Für die Bedingung gilt das Gleiche wie vorher. Nur wird diese hier am Anfang geprüft und nicht am Ende wie bei der do-while-Schleife. Das bedeutet, sollte die Bedingung vor der Schleife nicht wahr sein, wird sie gar nicht erst ausgeführt. Bei der do-while-Schleife wird die Bedingung erst am Ende des ersten Durchlaufs geprüft.

Zuguterletzt hätten wir da noch die for-Schleife, vielleicht ist es das, was du suchst:

for (int i = 0; i < 5; i++) {
    // Code
}

Diese Beispielschleife wiederholt 5 mal. Warum?

Nun, eine for-Schleife braucht grundsätzlich drei Angaben: die Initialisierung einer Zählvariable, eine Bedingung und eine sog. Inkrementierung.

int i = 0; initialisiert eine Zählvariable. In diesem Fall eine ganze Zahl i, die als Anfangswert 0 zugewiesen bekommt.

i < 5; stellt die Bedingung dar, die am Anfang jedes Durchlaufs geprüft wird. Die Schleife läuft, solange i kleiner als 5 ist.

i++; ist die Inkrementierung. Anders gesagt, beschreibt es das, was am Ende jedes Durchgangs mit der Zählvariable passiert. In diesem Fall ist das das Gleiche wie

i += 1;
// oder
i = i + 1;

Es sagt also, dass i am Ende jedes Durchgangs um eins erhöht werden soll. i++ ist eine Kurzschreibweise dafür.

Natürlich kannst du diese drei Angaben frei nach deinen Bedürfnissen einstellen. Du kannst die Schleife mit einer anderen Bedingung 100 mal iterieren lassen. Oder 432786523 mal. Genauso gut könntest du auch i kleiner werden lassen oder i einen anderen Startwert zuweisen. Je nachdem, was genau du willst.

Als letztes gibt es noch die Möglichkeit, eine Schleife frühzeitig von vorne beginnen zu lassen, also zum Anfang zu springen. Das geht mit der Zeile

continue;

Man möchte den Einsatz davon in der Regel aber eher vermeiden.

Ich hoffe, ich konnte helfen.

Wenn du noch Fragen hast, kommentiere diese Antwort gern!

LG

Hallo frage100x,

technisch gesehen gibt es für deine Anforderungen "mindestens einmal ausführen" einen eigenen Schleifentyp die do-while-Schleife

do {
} while (<Bedingung>);

Wird aus irgend einem Grund aber weit weniger genutzt als die anderen Schleifentypen. Selbst wenn die do-while perfekt passt, wird es doch künstlich so gebaut, dass es mit einer while-Schleife oder sogar for-Schleifer funktioniert.

Gruß

while (Bedingung) {}

Und für eine Endlosschleife:

while (true) {}

Mit ner while(true) schleife, also einer endlosschleife

verreisterNutzer  15.05.2018, 18:06

hast du ein bsp?

0
IProxy  15.05.2018, 18:26
@verreisterNutzer

Der Fehler liegt dann irgendwo in deinen Codezeilen. Denk daran, dass Variablen ihren Wert behalten, wenn die schleife neu durchläuft.

0