Lottozahlengenerator

D

di-five

Hallo,

ich habe ein Problem mit der Ausgabe der Zusatzzahl eines Lottozahlengenerators:

Code:
class Aufgabe3
{
    private static int zahl()
    {
        return (int) (49*Math.random()+1);
    }
    
    public static void main(String[] args)
    {
        System.out.println("");
        System.out.println("Lottozahlengenerator");
        
        boolean[] arrayZahl = new boolean[50];
        
        // Array mit true initialisieren
        for(int i=1; i<=49; i++)
        {
            arrayZahl[i] = true;
        }
        
        // Ausgabe der 6 Ziehungszahlen in der Reihe der Ziehung
        System.out.println("\nAusgabe der 6 Ziehungszahlen in der Reihe der Ziehung:");
        int j = 1;
        int lottozahl;
        while(j<=6)
        {
            lottozahl = zahl();
            if(arrayZahl[lottozahl] == true)
            {
                arrayZahl[lottozahl] = false;
                System.out.println(lottozahl);
                j++;
            }
        }
        
        // Ausgabe der Zusatzzahl
        System.out.println("\nAusgabe der Zusatzzahl:");
        int zusatzzahl;
        for(int k=1; k<=49; k++)
        {
            zusatzzahl = zahl();
            if(arrayZahl[zusatzzahl] == true)
            {
                System.out.println(zusatzzahl);
                break;
            }
        }
        
        // Ausgabe der 6 Ziehungszahlen in sortierter Reihenfolge
        System.out.println("\nAusgabe der 6 Ziehungszahlen in sortierter Reihenfolge:");
        for(int l=1; l<=49; l++)
        {
            if(arrayZahl[l] == false)
            {
                System.out.println(l);
            }
        }
        
        // Erneute Ausgabe der Zusatzzahl
        System.out.println(zusatzzahl);
    }
}

Die drittletzte Zeile in dem Code funktioniert nicht. ich kann die Variable zusatzzahl nicht erneut ausgeben, und weiß nicht warum :(

javac gibt folgende Fehlermeldung aus:

Aufgabe3.java:60: error: The local variable zusatzzahl may not have been initialized
System.out.println(zusatzzahl);
^^^^^^^^^^
1 problem (1 error)

Aber die Variable wurde doch durch int zusatzzahl initialisiert.

Kann mir jemand sagen, warum ich "zusatzzahl" nicht ausgeben kann?

Viele Grüße
di-five
 
Zuletzt bearbeitet von einem Moderator:
Moin,

zusatzzahl wurde nicht initialisiert, sondern lediglich deklariert.
Initialisiere die Zahl doch einfach mit dem Wert 0:
Java:
int zusatzzahl = 0;
Der Wert wird dann ja eh überschrieben und damit ist die Variable auch für Deine Ausgabe entsprechend verfügbar.

Du musst dabei nämlich unterscheiden, dass System.out.println(zusatzzahl); nichts von der vorherigen Anpassung der Zusatzzahl weiß.
Da diese wie der Compiler sagt, als nicht initialisiert hinterlegt ist, würde das einen Fehler verursachen (und macht es ja auch).

Gruß,
Xan
 
Hi Xan,

wenn ich zusatzzahl initialisiere statt nur zu deklarieren funktioniert es!

Vielen Dank für deine Hilfe!

Gruß di-five
 
Zurück