2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen

marius...

Neues Mitglied
Hab es leider nicht geschafft einen guten Titel zu formulieren.. 🙂
Sitze an einem kleinen Lottoprogramm, alles was ihr wissen müsst ist, dass ioch 6 Nummern ziehe und sie in einen Array packe. Das ganze sieht so aus:

Code:
      for (int i = 0; i <=5; i++) {      
        randomZahlen[i] = random();
      } // end of for


// dazugehörige Methode
  public static int random() { 
    int a = 0;
    //Zufallsgenerator Anlegen
    Random lotto = new Random();
   
    // Zufallsahl ziwschen 0 und 49
    // Grenze erzeugen und in randomZahlen speichern
    a = lotto.nextInt(50);
    return a;
   
  }

Da im Lotto eine Zahl nicht 2x gezogen werden kann, möchte ich nach dem ziehen überprüfen ob die gezogene Zahl schon vorkommt, wenn ja soll die besagte Zahl durch eine neue Ziehung ersetzt werden. So sieht mein unnötig komplizierter Ansatz aus:
Code:
      for (int i = 0; i <=5; i++) {      
        randomZahlen[i] = random();

        // counter3 soll die Stelle der soeben erzeugten Nummer im Array zählen
        counter3++; 
        counter3 = counter3 -1;

        for (int j = 0;j <=counter3; j++) {
          vergleich = j + 1;

           // randomZahlen ist der Array
           // hier habe ich versucht die Nummer mit der darauffolgenden zu Vergleichen
          if (randomZahlen[j] == randomZahlen[vergleich]) {
            randomZahlen[vergleich] = random();
      
    } // end of if
        } // end of for
      } // end of for
Kann es sein dass ich versuche die eben erzeugt Nummer mit der (nicht existenten) darauffolgenden Nummer zu vergleichen? Bisschen Aufklärung wäre sehr nett.

MfG
 
Mach's doch so:
Java:
import java.util.Random;

public class Lottoprogramm {
    private static int[] randomZahlen = new int[6];

    public static void main(String[] args) {
        for (int i = 0; i <= 5; i++) {
            int gezogeneZahl = random();
            while (arrayEnthaeltZahlBereits(gezogeneZahl) == true) {
                gezogeneZahl = random();
            }
            randomZahlen[i] = gezogeneZahl;
        }

        // Ausgeben
        for (int i = 0; i < randomZahlen.length; i++) {
            System.out.print(randomZahlen[i] + " ");
        }
    }

    private static boolean arrayEnthaeltZahlBereits(int zahl) {
        for (int i = 0; i < randomZahlen.length; i++) {
            if (randomZahlen[i] == zahl) {
                return true;
            }
        }
        return false;    }

    public static int random() {
        int a = 0;
        // Zufallsgenerator Anlegen
        Random lotto = new Random();

        // Zufallsahl ziwschen 0 und 49
        // Grenze erzeugen und in randomZahlen speichern
        a = lotto.nextInt(50);
        return a;
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben