Bestimmten Integer Wert aus Array filtern

CptK

Bekanntes Mitglied
Hallo,
ich habe in der Schule folgende Aufgabe bekommen:
Schreiben Sie ein Programm mit dem Sie die wöchentliche Ziehung der Lottozahlen („6 aus 49“) simulieren können. Das Problem ist jetzt, dass natürlich keine Zahl doppelt vorkommen darf. Wie kann ich jetzt also herausfinden, ob die Zahl in dem Array schon vorhanden ist?

PS: Wir müssen einen Array benutzen.

Ich habe es folgendermaßen probiert:
Java:
public class Aufgabe_6_6 {
   
    public static void main(String[] args){
       
        int Zahl[] = new int[6];
        int x = 0;
       
        for(int i = 0; i <= 5; i++){
            Zahl[i] = (int) (java.lang.Math.random()*49 + 1);
               
            System.out.println(Zahl[i]);
           
                for(int j = 5; j >= 0; j--) {
                    if(Zahl[j] == Zahl[i]) {
                        System.out.println("Error");
                        break;
                    }
                }
        }
       
    }
   
}

Das Problem hierbei ist jetzt jedoch, dass es immer unterbrochen wird, da es in der 2. for-Schleife immer gleich wird.
Es wäre schön, wenn mir jemand helfen könnte, was ich ändern muss.

Vielen Dank schon mal im Voraus!
 
  • Es sollte ausreichen i bei Duplikat einfach zu dekrementieren für einen erneuten Anlauf.
  • Außerdem sollte j bei i-1 starten, es macht keinen Sinn nicht belegte Felder zu untersuchen. Das würde auch dein Hauptproblem beheben.
  • Welche Relevanz hat x?
  • Bitte schreib Variablennamen in Java immer klein

Also so
Java:
public static void main(String[] args) {

        int zahl[] = new int[6];
        int x = 0;

        for (int i = 0; i <= 5; i++) {
            zahl[i] = (int) (java.lang.Math.random() * 49 + 1);

            System.out.println(zahl[i]);

            for (int j = i - 1; j >= 0; j--) {
                if (zahl[j] == zahl[i]) {
                    System.out.println("Error");
                    i--;
                    break;
                }
            }
        }

        System.out.println(Arrays.toString(zahl));
    }

Beispielausgabe:
10
40
20
40
Error
31
5
43
[10, 40, 20, 31, 5, 43]
 

Zurück
Oben