Was habe ich beim Würfel falsch gemacht?

... komplette Frage anzeigen

5 Antworten

Woran macht es sich bemerkbar, dass da ein Fehler auftritt?

zufallszahl ist bei Schleifeneintritt (Prüfen der Bedingung) noch nicht definiert, ja nicht einmal deklariert. Entweder außerhalb der Schleife deklarieren und definieren (empfohlen), oder irgendwie innerhalb (da wüsste ich jetzt nicht wie)

Schau dir auch die Abbruchbedingung noch einmal genau an: ist die so richtig?

Wäre ggf. eine do ... while - Schleife angemessener? (Wieder mit der Frage nach der richtigen Abbruchbedingung)

Dann: Typecast zu int rundet. Gesucht ist aber die nächstniedrigere ganze Zahl. Also entweder noch ein Math.floor einbauen oder das "+ 1" durch "+ 0.5" ersetzen.

Antwort bewerten Vielen Dank für Deine Bewertung

ich hab dir eine saubere, kurze Lösung erstellt

int r;
do{
r = new Random().nextInt(6)+1;
System.out.println("Du hast eine "+r+" gewürfelt.");
}while(r!=6);

Antwort bewerten Vielen Dank für Deine Bewertung

Die Schleife läuft nur falls die Zufallszahl 6 ist. Du möchtest aber das die Schleife läuft bis die Zufallszahl 6 ist, also while(Zufallszahl != 6)

!= Ist der Operator für ungleich.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TUrabbIT
24.02.2017, 01:15

ach und die Zufallszahl muss vor der ersten Verwendung definiert werden.

0

Du musst die Variable vor der Schleife erstellen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Kiwischuhe
23.02.2017, 21:15

Also?

0

Mach aus dem == mal ein !=, denn sonst gibst du die Zahl nur aus, wenn sie 6 ist.
Und wenn ich mich nicht täucshe, wirst du auch mit deinem Math.random keine Zufallszahl zwischen 1 und 6 bekommen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Kiwischuhe
23.02.2017, 21:15

Math.random funktioniert. Habe es schon mit einer anderen Methode gemacht wo ich nur einmal würfel.

0

Was möchtest Du wissen?