Hallo,
ich wollte zu Übungszwecken ein Programm schreiben, dass sechs Lottozahlen ausgibt, aber nie eine Zahl doppelt vorkommt.
Meine Umsetzungsidee:
- Die Lottozahlen in Array speichern
- Eine Endlosschleife erzeugt die Lottozahl, da ja mehrmals eine Zahl erzeugt werden kann Endlosschleife und wenn Array voll ist, auf false setzen
- Zweite Schleife die prüft ob eine Zahl bereits im Array steht, wenn ja, neue Zahl erzeugen, wenn nein, Zahl an nächstfreier Stelle im Array schreiben
Ich hänge bei der Zweiten Schleife, die prüfen soll ob die Zahl bekannt ist.
Ausgabe ist zurzeit:
1. Zahl: 27
2. Zahl: 27
3. Zahl: 27
4. Zahl: 27
5. Zahl: 27
6. Zahl: 27
(27 ist die zufällig erzeugte Zahl in diesem Fall)
Kann mir wer einen Ansatz nennen, oder wie ich das am besten zu meinen Wünschen entsprechend ändere?
ich wollte zu Übungszwecken ein Programm schreiben, dass sechs Lottozahlen ausgibt, aber nie eine Zahl doppelt vorkommt.
Meine Umsetzungsidee:
- Die Lottozahlen in Array speichern
- Eine Endlosschleife erzeugt die Lottozahl, da ja mehrmals eine Zahl erzeugt werden kann Endlosschleife und wenn Array voll ist, auf false setzen
- Zweite Schleife die prüft ob eine Zahl bereits im Array steht, wenn ja, neue Zahl erzeugen, wenn nein, Zahl an nächstfreier Stelle im Array schreiben
Ich hänge bei der Zweiten Schleife, die prüfen soll ob die Zahl bekannt ist.
Code:
import java.util.Random;
public class Lotto {
public static void main(String[] args) {
Random rand = new Random();
int[] arr = new int[6];
boolean loop = true;
int i, k = 0;
// Lottozahlen ermitteln
while (loop) {
int zahl = rand.nextInt(49) + 1;
// Prüfe ob, ermittelte Zahl schon vorkommt
for (i = 0; i < arr.length; i++) {
if (zahl == arr[i]) {
break;
} else {
arr[k] = zahl;
k++;
// Sind alle 6 Zahlen gezogen, verlasse Schleife
if (k == 5) {
loop = false;
}
}
}
}
// Ausgabe
int j = 0;
for (i = 0; i < arr.length; i++) {
++j;
System.out.println(j + ". Zahl:\t " + arr[i]);
}
}
}
Ausgabe ist zurzeit:
1. Zahl: 27
2. Zahl: 27
3. Zahl: 27
4. Zahl: 27
5. Zahl: 27
6. Zahl: 27
(27 ist die zufällig erzeugte Zahl in diesem Fall)
Kann mir wer einen Ansatz nennen, oder wie ich das am besten zu meinen Wünschen entsprechend ändere?