Java: mehreren Arrays/Variablen gleichen Wert?

Hallo, Ich bin schon total verzweifelt. Ich soll für die Schule ein Programm schreiben, aber meine Lehrerin hat mal wieder nix erklärt. Das Problem ist, dass das Programm am Montag fertig sein soll, und ich noch nicht mal einen wirklichen Ansatz habe.
Und zwar sollen wir ein Programm schreiben, dass die Lottozahlen zieht. Das ganze soll mit einem Array (ich weiß nicht mal was das ist) geschrieben werden und es soll keine Zahl doppelt vorkommen.
Dann steht hier, dass wir so anfangen sollen:

int [] lottozahlen;
lottozahlen=new int[50];

Danach sollen, wie sie es genannt hat ‚Jeden Array Becker mit deiner Zahl füllen‘ in meinem Fall wäre es die 0. Wie ‚fülle‘ ich denn jeden dieser ‚Becher‘ mit der gleichen Zahl, ohne jedes Mal

lottozahlen[1]=0;
lottozahlen[2]=0;

und so weiter schreiben zu müssen? weil bei 50 dieser Zahlen, dauert das echt lange… :confused:

Hat hier jemand Ahnung, wie das geht?? Oder kann mir dazu was erklären oder so?
Das wäre echt super.
Danke schonmal

Hallo,

ein Array ist wie ein Schrank mit (in deinem Fall) 50 Schubladen. In jede dieser Schublade kannst du genau eine Integer speichern. Darauf zugreifen kannst du mit schrank[0] oder schrank[39] bis zu schrank[49]. Merke, dass schrank[0] die oberste Schublade ist und schrank[49] die unterste.
Ich hoffe damit sind die Arrays klar.

Im nächsten Schritt willst du nacheinander alle Schubladen „in einem Rutsch“ mit 0 füllen. Dafür brauchst du eine Schleife. Habt ihr das schon? Folgende Schleife erstellt die Variable i und gibt ihr den Wert 0. Dann wird, solange i kleiner als die Größe des Schranks (=Arrays) der Teil im Schleifenbody ausgeführt und anschließend i um eins erhöht.

 for (int i = 0; i 

Wie du siehst, steht im Body "schrank[i] = 0;" je nach dem was i ist, wird die i-te Schublade des Schranks (=Arrays) aufgemacht und dort 0 hineingelegt.

Danke, das hat wirklich geholfen :smile:
hast du auch eine Idee, wie ich das mache, dass ich jetzt als nächstes zufallszahlen bestimme (wie das geht, weiß ich) aber dann muss ich die zufallszahl jeweils den arrays zuweisen und die restlichen sollen sich dann um 1 erhöhen, sodass das programm weiß, wenn alle anderen array-elemente =6 sind, dass es dann aufhört zufallszahlen zu erstellen. damit ich keine zahl doppelt habe und das programm nur 6 zufallszahlen bestimmt…
Oh gott, ich hoffe man versteht überhaupt was ich meine :smiley:
Aber schonmal für das was du mir geschrieben hast ein riesengroßes dankeschön :smile:

Freut mich, dass es geholfen hat.

So ganz habe ich deine Aufgabe nicht verstanden.

Welche restlichen Zahlen meinst du?
Was soll passieren, wenn du eine Zufallszahl erstellst?
Wozu ist das Array da?

kannst mit ner for-schleife machen…

for(int i=0;i

Sorry, ich drück mich manchmal so kompliziert aus :smiley:
Also, ich brauche ein Programm, dass Lottozahlen zieht, aber es darf keine Zahl doppelt gezogen werden, deshalb die Arrays von 1-49 (die 0 sollen wir halt weglassen). Und dann sollen wir Zufallszahlen erstellen, und die Zufallszahlen sollen wir dann den jeweiligen Arrays zuweisen, also zum Beispiel wenn wir eine 18 ziehen, dann ist lottozahlen[18]=18. Und wenn eine zufallszahl gezogen wurde (und dem Array zugewiesen wurde) dann sollen alle anderen Arrays +1 gerechnet werden, also das dann zum Beispiel lottozahlen[5]=1 ist. Und dann halt immer so weiter, bis man 6 Zahlen hat, und dann sind ja alle anderen Arrays (also die mit den Zahlen die nicht gezogen) wurden =6. Und das Programm soll wissen, dass es dann aufhören muss.
Jetzt weiß ich erstmal nicht, wie ich das mache, dass wenn ich eine zufallszahl gezogen hab, die dann auch dem entsprechenden Array zugewiesen wird. Und wie ich das mache, dass alle anderen +1 gerechnet werden.
(So ganz hab ich das System eh noch nicht verstanden, warum das so gemacht werden soll und so.)
Naja, ich hoffe es ist jetzt etwas besser zu verstehen. :smile:

Das klingt für mich ein bisschen unlogisch, da du ja auch die Zahlen 1-6 als Zufallszahl ziehen kannst.

for (int i = 0; i 

Das wäre der Code mit dem du 6x eine Zufallszahl lottozahl bestimmst (die Methode zufallszahl() müsste dir dann eine Zahl zwischen 1 und 49 liefern) und diese der Arrayposition ihres Wertes zuweist. Anschließend werden alle anderen Einträge des Arrays um eins erhöht.


Was ich dabei nicht verstehe ist, dass du ja nie weißt welche Zahlen du eigentlich gezogen hast.

Nimm mal an, dass im ersten Durchgang die 4 als Zufallszahl gezogen wird. Dann wird array[4] = 4 gesetzt und alle anderen, also array[0]-[49] ausschließlich 4 um eins erhöht, also auf 1 gesetzt.

Wenn du jetzt im nächsten Durchgang die Zufallszahl 1 erhältst, wird array[1]=1, aber alle anderen wieder um eines erhöht, also auch array[4]=5. Damit stimmen deine gezogenen Zahlen nicht mehr.

Außerdem kannst du höhere Zahlen als 49 bekommen, was ja eigentlich nicht sein kann.