Würfeln bis 6 while Schleife

JavaBeginner22

Aktives Mitglied
Hallo, kann mir jemand erklären wie ich diese Aufgabe lösen kann.
int Würfe = util.Zufall.wuerfeln();


while(Würfe<=6){
Würfe++;
System.out.println(Würfe);
bis jetzt sieht mein code so aus, aber es macht für mich kein sinn, da bei der ausgabe immer 1,2,3,4,5,6 ausgegeben wird.


Aufgabe:Ein Spieler würfelt so lange bis er eine 6 gewürfelt hat. Die Würfe werden ausgegeben. Kann mir jemand erklären wie ich das mit der while-Schleife machen kann
 
Aufgabe:Ein Spieler würfelt so lange bis er eine 6 gewürfelt hat. Die Würfe werden ausgegeben. Kann mir jemand erklären wie ich das mit der while-Schleife machen kann
Du musst nur die Aussage etwas umbauen: "Ein Spieler würfelt so lange bis er eine 6 gewürfelt hat" heißt ja nichts anderes als "Ein Spieler würfelt so lange er keine 6 gewürfelt hat".

Übersetzt man das ins Javanische 🙂 erhält man z. B.
Java:
int wurf;
do {
    wurf = wuerfeln();    // ... würfelt so lange er
    // mach was mit wurf
} while (wurf != 6);      // keine 6 gewürfelt hat

Das ist eine "Schleife mit nachfolgender Bedingungsprüfung" (do-while-Schleife). Wenn du eine vorausgehene Bedingungsprüfung (while-Schleife) willst, dann ziehst Du das while einfach nach vorne und initialisert wurf mit einem Wurf. Hier ändert sich die Reihenfolge der Logik, da beim Eintritt in die Schleife bereits ein Wurf vorhanden ist:
Java:
int wurf = wuerfeln();
while (wurf != 6) {     // so lange keine 6 gewürfelt wurde,
    // mach was mit wurf
    wurf = wuerfeln(); // weiterwürfeln
}
 
Mein Tip: Verwende die do-while-Schleife, die ist passender als die reine while Schleife. do-while ist ja genau dafür da, dass zumindest einmal was gemacht und anschließend überprüft wird, ob das gleiche wiederholt werden soll, so sparst du doppelten Code(was zugegeben für eine einzelne Zeile nicht weiter tragisch ist).
Wenn du dann noch die Anzahl der Würfe wissen willst, dann initialisiert vor der Schleife eine zusätzliche Variable mit 0 und erhöhe sie innerhalb der Schleife um 1.
 
Mein Tip: Verwende die do-while-Schleife, die ist passender als die reine while Schleife. do-while ist ja genau dafür da, dass zumindest einmal was gemacht und anschließend überprüft wird, ob das gleiche wiederholt werden soll, so sparst du doppelten Code(was zugegeben für eine einzelne Zeile nicht weiter tragisch ist).
Wenn du dann noch die Anzahl der Würfe wissen willst, dann initialisiert vor der Schleife eine zusätzliche Variable mit 0 und erhöhe sie innerhalb der Schleife um 1.
kannst du mir vielleicht den sinn erklären was diese variable mit den int würfe zu tun hat?
 
kannst du mir vielleicht den sinn erklären was diese variable mit den int würfe zu tun hat?
Die wäre ein Zähler, steht ja am Anfang des Satzes. Also hat sie mit dem Wurf selbst nichts zu tun, deshalb ja auch eine zusätzliche Variable. du hattest in deinem Post das Ergebnis eines Wurfs hochgezählt, was .... sagen wir mal "nicht zielführend" ist.
 
Du kannst auch eingangs
die Würfe Variable auf etwas unmögliches setzen, bspw. 0, und dann eine normale Whileschleife benutzen:
Java:
int wuerf=0;

while(wurf!=6){
    //Hier Code zum Würfeln
    wurf= ... ;
}


Und wie schon Andere sagten:
Dein anfänglicher Code mahct wenig Sinn, da du Würfe erst eine Zufallszahl zuweist, und dann das immer wieder um 1 erhöhst in der Shcleife.
Dass du da überhaupt immer 1,2,3,4,5,6 rauskriegen willst, grenzt für mich an ein Wunder 🙂

Willst du hingegen einerseits die gewürfelte Zahl (zwischen)speichern und andererseits die Anzahl an Würfen mitzählen, braucht du 2 ganz getrennte Variabeln.

Nennen Sie sinnhafterweise "Wurfergebnis" und "Wurfanzahl" oder Ähnliches 🙂
 

Neue Themen


Zurück
Oben