Array und Getter-Methode

schwarz.k

Neues Mitglied
Hallo,

ich soll eine Lottoziehung programmieren. Jede Zahl darf nur einmal ausgegeben werden und der Zugriff darf nur über die Getter-Methode erfolgen. Leider bekomme ich als Ausgabe nur " 0 0 0 0 0 0 " raus. Ohne die Getter-Methode, also mit einer main Funktion in der Klasse selber funktioniert das Programm. Leider finde ich meinen Fehler nicht. Kann mir bitte jemand weiter helfen?

Hier mein Code: (bitte beachtet, ich programmiere erst seit 6 Wochen. Geht also bitte nicht zu hart mit mir ins Gericht 😉)

Java:
public class Ziehung {
    
    private    int [] zahlen = new int [6];
    
         void gezogeneZahl() {
            
            for (int i = 0; i<zahlen.length;i++){ 
                
                this.zahlen[i] = (int) (Math.random()*49+1);
                
                    for (int j = 0; j < i; j++) {
                        if (this.zahlen[i] == this.zahlen[j]){
                            this.zahlen[i] = (int) (Math.random()*49+1);
                            j=-1;
                        }
                    }
                    System.out.print(this.zahlen[i] + " ");
            }
         }
         
         
         public int [] getZahlen(){
                 return this.zahlen;
         }
}

Java:
public class Ausgabe {
    
    public static void main (String[] args){
        Ziehung ziehung = new Ziehung ();
        
        int [] myArray = ziehung.getZahlen();
        
        for (int i=0; i< myArray.length; i++)
        System.out.print(myArray[i] + " ");
        
    }
        
}
 
Hallo,
erstelle dir einen Konstruktor in dem du gezogeneZahl() zahl aufrufst.
Dein Problem ist das die Methode gezogeneZahl() nie aufgerufen wird und somit nie dein Algorithmus ausgeführt wird !

Das sollte ca so aussehen:
Java:
public class Ziehung {
 
    private    int [] zahlen ;
 
        public Ziehung  (){
           zahlen = new int [6];
          zieheZahlen ();
        }
        private void zieheZahlen() {
 
            for (int i = 0; i<zahlen.length;i++){ 
 
                this.zahlen[i] = (int) (Math.random()*49+1);
 
                    for (int j = 0; j < i; j++) {
                        if (this.zahlen[i] == this.zahlen[j]){
                            this.zahlen[i] = (int) (Math.random()*49+1);
                            j=-1;
                        }
                    }
                    System.out.print(this.zahlen[i] + " ");
            }
         }
 
 
         public int [] getZahlen(){
                 return this.zahlen;
         }
}
P.S. Hab deine Methode zu zieheZahlen umbenannt.

Gruß,
AntiMuffin
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben