Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Würfel in do/while-Schleife - Abbruchbedingung?

Würfel in do/while-Schleife - Abbruchbedingung?

Universität / Fachhochschule

Sonstiges

Tags: 6-seitiger Würfel, Augenzahl, Java, Netbeans, Sonstiges

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Lilo93

Lilo93

22:20 Uhr, 08.04.2013

Antworten
Hallo, ich habe folgende Aufgabe: ich soll in einer do/while-Schleife mit einem "virtuellen" 6-seitigen Würfel würfeln, bis exakt 3-mal hintereinander dieselbe Augenzahl geworfen wird.

ich habe bereits:

public static void main(String[] args) {
int wuerfel;
int i = 1;
do {
wuerfel = (int)(Math.random()*6+1);
System.out.print(wuerfel+", ");
i++;
} while ();

mein Problem ist, dass ich nicht so recht weiß, was ich in while( ) schreiben soll.
Vll könnte mir jemand Tipps geben?
Danke schonmal im Voraus :-)

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Online-Nachhilfe in Mathematik
Antwort
McMannus

McMannus aktiv_icon

00:49 Uhr, 09.04.2013

Antworten
Zunächst könntest du dir merken, was die Zahl aus dem letzten oder den letzten beiden Durchgängen war und daraus die Bedingung herleiten :-)
Antwort
CKims

CKims aktiv_icon

00:51 Uhr, 09.04.2013

Antworten
_int wuerfel;
_int lastWuerfel=-1;
_int i=1;
_int nInRow=0;

do{

wuerfel=(int)(Math.random()*6+1);

//wenn der letzte wurf gleich dem aktuellen, dann inkrementiere nInRow... sonst setz nInRow wieder auf null

i++;
lastWuerfel=wuerfel;

}while("kommst du jetzt drauf?");


lg
Lilo93

Lilo93

20:09 Uhr, 10.04.2013

Antworten
Vielen Dank für die Tipps! :-)
also, jetzt schaut das Ganze so aus:

public static void main(String[] args) {
int wuerfel;
int lastWuerfel = 2;
int nInRow = 0;

do {
wuerfel = (int)(Math.random()*6+1);
System.out.println(wuerfel);

if(wuerfel==lastWuerfel) {
nInRow++;
lastWuerfel=wuerfel;
}
else
nInRow=0;

}

while(nInRow<3);

}
}

Funktioniert eigentlich (wenn ich lastWuerfel = einer Augenzahl setze) nur wie schaff ich, dass lastWuerfel zu Beginn nicht eine spezielle Zahl ist, sondern eine Zahl zwischen 1 und 6?
oder besser gesagt, dass der Wert von lastWuerfel meinem ersten Wurf entspricht?

Sorry, für die wahrscheinlich blöden Fragen,
ich programmiere erst seit kurzem und muss noch viel lernen :/
Antwort
McMannus

McMannus aktiv_icon

10:41 Uhr, 11.04.2013

Antworten
Dies kannst du durch eine Abfrage erreichen, ob du gerade den ersten Wurf vollziehst.

Also:

if (nInRow ==0){
lastWuerfel = wuerfel;
}
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.