Lottozahlen Programm!?!?

  • Themenstarter Themenstarter BladeNeo
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

BladeNeo

Gast
Hi @ all,

hab hier ein Code gekriegt in der Schule, den ich jedoch echt gar net so verstehe.
Könnte mir jemand helfen, den ein wenig besser zu kapieren??

Also hier erstmal der Code

Code:
package lottozahlen;
import java.util.Random;
import java.util.Arrays;
public class Lottozahlen {

public static void main(String[]args)
  {
    final int SIZE = 6;

    int lottozahlen[] = new int [SIZE];

    Arrays.fill(lottozahlen,0);
    Random zufall = new Random();

  boolean treffer;
  int lottozahl;
  for (int i=0; i<SIZE; i++)
  {
    do
    {
      lottozahl= zufall.nextInt (49) +1;
      treffer= false;
      int j= 0;
      while (j<=i)
      {
        if (lottozahlen [j] == lottozahl)
        {
          treffer=true;
        }
        j++;
      }
    }
    while (treffer);

    lottozahlen [i]= lottozahl;
  }
  for (int i =0; i<SIZE; i++)
  {
    System.out.print(lottozahlen [i] + " ");
  }
  }
}

Ich verstehe nicht wieso am Anfang int Size = 6 erzeugt wird und dann darauf ein neuer Int lottozahlen mit new int [SIZE] erstellt wird.. was hat das SIZE hier zu suchen? man könnte doch einfach gleich dass hier schreiben:
int lottozahlen[] = new int (6), oder?
Nun kommt Arrays.fill(lottozahlen, 0); wird hier der Array lottozahlen mit 0 gefüllt?
Nun der boolean treffer.. bei dem verstehe ich gar nicht was er in dem Programm macht.
Ab dieser for-Schleife setzt es bei mir aus.. ich war krank als mein Lehrer den Code erklärt hat und wir haben zum ersten mal so ne ziemliche verzweigung von for, do und while-Schleifen.. hier wäre ich sehr dankbar wenn mir jemand die Schleifen erklärt, der Reihenfolge nach am besten.

Naja, ziemlich viele Fragen, aber müsst ja net alle auf einmal beantworten 😉 würde mich jedoch sehr freuen wenn mir jemand hilft.

Danke schonmal im Vorraus

MfG,
BladeNeo
 
Ich verstehe nicht wieso am Anfang int Size = 6 erzeugt wird und dann darauf ein neuer Int lottozahlen mit new int [SIZE] erstellt wird.. was hat das SIZE hier zu suchen? man könnte doch einfach gleich dass hier schreiben:
int lottozahlen[] = new int (6), oder?
könnte man, aber SIZE steht hier als Konstante... ist ev. schöner, wenn man das prog weiterverwenden will.

Nun kommt Arrays.fill(lottozahlen, 0); wird hier der Array lottozahlen mit 0 gefüllt?
genau. alle indizes mit 0 initialisiert.

Nun der boolean treffer.. bei dem verstehe ich gar nicht was er in dem Programm macht.
die "while" schleife läuft so lange, bis der auf true ist. dann wird mit dem prog weitergemacht.

so, das war der anfang.
schleifen: am besten gehst du sie langsam durch und schreibst auf einem zettel, was mit den vars passiert.

ciao
 
ok, hier auch die schleifen:

kurz und bündig: es wird eine zufallszahl generiert und diese im array angelegt. dabei wird aber geschaut, ob diese schon vorhanden ist (treffer), wenn nein hinzufügen, wenn ja -> neue generieren.

ciao
 
Hi und nochmals Danke!

sehr nett dass du so schnell Antwortest!

Jetzt weis ich wozu der Treffer da ist.. mit den Schleifen hast du recht, die geh ich mal ganz langsam durch und schreibe es mir auf, danke für den Tipp.

Wünsch dir noch nen schönen Sonntag-Abend.

MfG,
BladeNeo
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben