Hallo liebe Community,
habe mich zu Hause folgender Aufgabe gewidmet. Ich möchte 6x eine Zahl zwischen 1 und 49 generieren, und diese hintereinander in einem Array abspeichern. Soweit so gut.
Das Vorgehen ist mir auch bewusst, ich bekomme 6 random Zahlen, die im Array sind.
Mein Problem ist, dass ich gerne immer 6 verschiedene Zahlen hätte. Habe es jetzt seit 2 stunden mit allen möglichen Vorgehensweisen versucht, allerdings bekomme ich, wenn ich das ganze mehrmals wiederhole, irgendwann wieder zwei gleiche Zahlen aufs Array...
Könnt ihr mir evt weiterhelfen?
Hier der Code:
Zur Erklärung: ich will die variable Zufall benutzen, um den ersten generierten wert für zufallszahl dort abzulegen. eigentlich wollte ich die neue zufallszahl immer mit liste[i-1] vergleichen, am 0. element ist das aber nicht möglich und ich bekomme den OutOfBounds error.
Das Tauschen ist halt dafür da, um die zahlen richtig sortiert im array abzulegen.
und hier die Main Methode zum testen des Programms..
habe mich zu Hause folgender Aufgabe gewidmet. Ich möchte 6x eine Zahl zwischen 1 und 49 generieren, und diese hintereinander in einem Array abspeichern. Soweit so gut.
Das Vorgehen ist mir auch bewusst, ich bekomme 6 random Zahlen, die im Array sind.
Mein Problem ist, dass ich gerne immer 6 verschiedene Zahlen hätte. Habe es jetzt seit 2 stunden mit allen möglichen Vorgehensweisen versucht, allerdings bekomme ich, wenn ich das ganze mehrmals wiederhole, irgendwann wieder zwei gleiche Zahlen aufs Array...
Könnt ihr mir evt weiterhelfen?
Hier der Code:
Zur Erklärung: ich will die variable Zufall benutzen, um den ersten generierten wert für zufallszahl dort abzulegen. eigentlich wollte ich die neue zufallszahl immer mit liste[i-1] vergleichen, am 0. element ist das aber nicht möglich und ich bekomme den OutOfBounds error.
Java:
public class Lotto{
public static int [] lotto(){
boolean getauscht;
int zufallszahl;
int [] liste = new int [6];
int zufall = 0;
for(int i=0; i<liste.length; i++){
zufallszahl = (int)((Math.random()) * 49 + 1);
if(zufallszahl == zufall){
do{
zufallszahl = (int)((Math.random()) * 49 + 1);
}
while(zufallszahl == zufall);
liste[i] = zufallszahl;
zufall = zufallszahl;
}
else{
liste[i] = zufallszahl;
zufall = zufallszahl;
}
}
do{
//evt tauschen
getauscht = false;
for(int i=0; i< liste.length-1; i++){
if(liste[i]>liste[i+1]){
int tmp = liste[i];
liste[i]=liste[i+1];
liste[i+1]=tmp;
getauscht = true;
//tauschen
}
}
}
while(getauscht);
return liste;
}
public static void ausgabe(int[]liste){
for(int i = 0; i < liste.length; i++){
System.out.println(liste[i]);
}
}
}
und hier die Main Methode zum testen des Programms..
Java:
public class LottoTest{
public static void main(String [] args){
int [] ergebnis = Lotto.lotto();
Lotto.ausgabe(ergebnis);
}
}