Do-While Schleife

Video

Mit dem Laden des Videos akzeptierst du die Datenschutzerklärung von YouTube. Wenn du die Menge an Daten reduzieren möchtest, die YouTube von dir sammelt, solltest du dich vorher aus deinem YouTube-Account ausloggen, das Speichern von Cookies für das Google-Ads-Programm deaktivieren und/oder Cookies im Browser blockieren.

YouTube immer automatisch laden
Inhaltsverzeichnis
Als Text lesen

Du kennst bereits while Schleifen. Schau dir mal folgendes Beispiel an:

double x;
double y;
x = Math.random();
y = Math.random();
while (x + y > 1.0) {
x = Math.random();
y = Math.random();
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die Methode Math.random() gibt eine Zufallszahl zwischen 0 und 1 zurück. Solange die beiden Zahlen x und y in Summe größer als 1.0 sind, wird dieser Zufallsprozess wiederholt.

Du siehst, dass die Zeilen 4-5 identisch zu den Zeilen 8-9 sind. In solchen Situationen kann es schnell passieren, dass dein Code unübersichtlich wird. Besser wäre es wenn wir eine Möglichkeit hätten diese Zeilen zusammenzufassen, sprich den Körper einer while Schleife immer mindestens 1x auszuführen.

Genau das geht mit einer do while Schleife:

double x;
double y;
do {
x = Math.random();
y = Math.random();
} while (x + y > 1.0);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die Zeilen 5-6 werden hier immer mindestens 1x ausgeführt. Falls danach die Bedingung dann true ist, werden die Zeilen so lange erneut ausgeführt, bis die Bedingung false ist.

Bei einem Brettspiel darf ein Spieler seine Figur um die Summe der Augenzahlen zweier Würfel bewegen. Hat er einen Pasch gewürfelt, so darf er noch einmal würfeln.

Implementiere die Methode rollDices(), die entsprechend der erklärten Regeln Würfelt und die Figur bewegt.

Hinweise

  • Die Methode dice() gibt eine Zufallszahl zwischen 1 und 6 (inklusive) zurück.
  • movePlayer() bewegt die Figur um die Summe der übergebenen Argumente und gibt ein paar nützliche Informationen auf der Konsole aus.
  • Verwende eine do while Schleife!

Online Editor

Mit dem Laden des Online Editors akzeptierst du die Datenschutzerklärung von JDoodle, einem Produkt der Nutpan pty Ltd (Australien). JDoodle verwendet die Tools reCAPTCHA und Google Analytics, wodurch Daten an Google übertragen werden können. Ich habe leider keinen Einfluss auf diesen Prozess. Du kannst Google Analytics über ein Browserplugin deaktivieren.

Online Editor immer automatisch laden
Häufige Fehlerquellen
  • error: cannot find symbol: Die Variablen, die du in einer do while Schleife verwendest, musst du schon vorher deklarieren.
  • Bedingung in der do while Schleife falsch: Der Würfelvorgang soll so lange wiederholt werden, wie ein Pasch vorliegt.
  • Mit nur einem Würfel gewürfelt: Auch bei einem Pasch soll wieder mit beiden Würfeln gewürfelt werden.
Lösungsvorschlag
public class BoardGame {
private int playerPos;
public BoardGame() {
playerPos = 0;
}
public void rollDices() {
int firstNumber;
int secondNumber;
do {
firstNumber = dice();
secondNumber = dice();
movePlayer(firstNumber, secondNumber);
} while (firstNumber == secondNumber);
}
private void movePlayer(int firstNumber, int secondNumber) {
int steps = firstNumber + secondNumber;
playerPos += steps;
System.out.println("Würfel: [" + firstNumber + "] [" + secondNumber
+ "] -> Der Spieler hat sich " + steps
+ " Schritte bewegt und steht jetzt auf Feld " + playerPos + ".");
if (firstNumber == secondNumber) {
System.out.println("Pasch!");
}
}
private int dice() {
return (int) (Math.random() * 6.0 + 1.0);
}
public static void main(String[] args) {
BoardGame game = new BoardGame();
game.rollDices();
game.rollDices();
game.rollDices();
}
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dir gefällt meine Arbeit?

Unterstütze Mich
AllgemeinSocialRechtliches
HomeInstagramDatenschutz
ÜberYouTubeImpressum
TikTok
Ko-fi

Made with love by a former noob.

© 2022-2024 Timo Friedl