# ArrayIndexOutOfBoundsException: 0



## Kubis (6. Jan 2010)

Hallo Ich muss einen Weihnachtsbaumcode schreiben den code hab ich fertig nun kommt aber immer diese Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at Weihnachtsbaum.main(Weihnachtsbaum.java:10)

und hier ist mein code


```
public class Weihnachtsbaum
{
       /**
        *@param n Der Parameter n beschreibt die Höhe und somit auch die Breite des Baumes.
        *         Dieser Parameter ist variabel.
        */
       
        public static void main(String[] args)
    {
        int n = Integer.parseInt(args[0]);
        //public ArrayIndexOutOfBoundsException();
       
            /** Erfolgt eine Eingabe Höhe <=1, so hat der Baum keine Äste und es
             * soll eine Fehlermeldung ausgegeben werden
             * Andernfalls soll die Methode baum aufgerufen werden
             */   
           
        if (n<=1)
            System.out.println("Bitte eine natuerliche Zahl groesser oder gleich 2 eingeben,damit der Baum auch eine Krone hat ;-) ");
        else
            System.out.print(baum(n));
    }
   
   
   
    //Methode baum
    /* Wir erzeugen eine Matrix, die in Abhängigkeit von n bei der Erzeugung des Baumes hilft */
    /**
     *@param i Der Parameter i bildet die Zeilenanzahl in der erzeugten Matrix.
     *@param j Der Parameter j bildet die Spaltenanzahl in der erzeugten Matrix.
     */
   
     
    public static String baum(int n)
    {
        int i, j;
            /**
             * Höhe 1 hat 1 Stern
             * Höhe 2 hat 3 Sterne
             * Höhe 3 hat 5 Sterne
             * Folglich hat Höhe n genau 2*n-1 Sterne
             *
             * Um den Baum zu zentrieren, hat die erste Zeile n-1 Leerzeichen
             * Zeile 2 hat n-2 Leerzeichen, usw.
             */
           
             //"Krone" des Baumes zeichnen
               /* Zentrieren des Baumes */
                for (i=1; i<=n; i++)
            {

                for (j=1; j<=n-i; j++)
                System.out.print(" ");
               
                /* (2 * i - 1) Sterne ausgeben */
                for (j=1; j<=(2*i-1); j++)
                System.out.print("*");
       
                /* Erzeuge einen Zeilenumbruch */
                System.out.println();
            }

            // "Stamm" des Baumes zeichnen
                /* Erzeuge einen zentrierten Stamm */
                for (i=1; i<n; i++)
                System.out.print(" ");
                return("I");
   }
}
```

hoffe ihr könnt mir helfen


----------



## eRaaaa (6. Jan 2010)

Mit 
	
	
	
	





```
int n = Integer.parseInt(args[0]);
```

willst du den ersten Paramter den du dem Programm übergibst zu einem int parsen. Aber anscheinend übergibst du dem Programm garkeine Parameter ! (d.h. das String-Array args hat die Länge 0)

java Weihnachtsbaum 5

So ode rso ähnlich solltest du das z.B. aufrufen, dann wäre int n = 5;


----------



## Kubis (6. Jan 2010)

das verstehe ich nicht was du jetzt meinst
was genau soll ich ändern ??
der soll ja eine abfrage machen wie groß der Baum sein soll und dann soll er ihn zeichnen 
hoffe du verstehst die aufgabenstellung


----------



## Paddelpirat (6. Jan 2010)

Na wenn dein Programm eine Abfrage machen soll, wie groß der Baum werden soll, dann musst du das auch programmieren.

Im moment hast du dein Programm so geschrieben, dass du beim Starten die Baumgröße mit angeben musst.

D.h. wie eRaaaa geschrieben hat: du musst dein Programm mit "java Weihnachtsbaum 5" aufrufen, wobei 5 die Größe deines Baumes ist.


----------



## eRaaaa (6. Jan 2010)

Kubis hat gesagt.:


> was genau soll ich ändern ??



Ändere die Zeile 11 um in z.B.:

```
Scanner sc = new Scanner(System.in);
	System.out.println("Bitte die Höhe des Baumes eingeben");
	int n = sc.nextInt();
```
dann sollte das Ganze laufen!


----------

