2017-06-17 4 views
0

Ich bin ein Anfänger und Java-Arrays zum ersten Mal verwenden. Wenn ich meinen Code ausspreche, erhalte ich diesen Fehler. Es gibt keine Fehler in meinem tatsächlichen Code, daher sehe ich nicht, wo das Problem in meinem Code ist.Fehlermeldung für Arrays

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0   
at sumdouble.Sumdouble.main(Sumdouble.java:24) 

Hier ist mein Code

package sumdouble; 


public class Sumdouble { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
double sum = 0; 
int number = 1; 

double array[] = new double [5]; 
for (number = 0; number < 5; number++) 
{ 
    array[number] = Double.parseDouble(args[number]); 
    System.out.println("The" +number+ "argument value is: " +array[number]); 

    for(double numb: array) 
    { 
     sum = sum + numb; 

    } 
}System.out.printf("Sum of all numbers = %2f", sum); 
    // TODO code application logic here 
} 

} 

Antwort

0

Sie args[number] zugreifen, aber Sie haben keine Argumente übergeben, wenn Sie das Programm gestartet. Das Array args hat die Länge 0. Daher verursacht der Zugriff auf args[0] eine ArrayIndexOutOfBoundsException.

+0

Wie würde ich dafür sorgen, dass das Array nicht Länge 0 hat? Ich weiß, das Problem liegt in der Befehlszeile, aber ich bin so neu, dass es mir schwer fällt zu sehen, wie es funktioniert – henna994

+0

Dies hängt davon ab, wie Sie Ihr Programm starten. Laufen Sie von der Befehlszeile oder von einer IDE? Welche IDE verwendest du? – Henry

+0

Ich benutze NetBeans 8.2 – henna994

0

Der Fehler tritt bei der ersten Iteration der Schleife auf. Sie greifen auf args, das ist ein Array, das mit der so genannten gefüllt wird. Wenn Sie keine übergeben, ist das Array leer, und deshalb erhalten Sie diesen Fehler.

Werfen Sie einen Blick auf die offizielle Dokumentation zu lernen, Befehlszeilenargument an Ihre Java-Anwendungen übergeben. Es kann nicht schaden =)

Wenn Sie Eclipse nehmen verwenden einen Blick here

+0

Also, wie würde ich es weitergeben, um sicherzustellen, dass mein Array nicht leer ist. Müsste ich ein anderes Befehlszeilenargument verwenden? – henna994

Verwandte Themen