Ich versuche, das unten Programm finden,kann nicht die Ursache für java.lang.ArrayIndexOutOfBoundsException
public class Ocerloading {
public static void main(String[] args) {
int[] month_days = new int[12];
String[] month_name = { "January", "February", "March", "April", "May", "June", "July", "August", "September",
"October", "November", "December" };
for (int i = 0; i < 12; i++) {
if (i == 1) {
month_days[i] = 28;
continue ;
}
if (i <= 6) {
if (i % 2 == 0)
month_days[i] = 31;
else
month_days[i] = 30;
} else {
if (i % 2 == 0)
month_days[i] = 30;
else
month_days[i] = 31;
}
}
for (int x : month_days) {
System.out.println(month_days[x]);
}
}
}
Es gibt den folgenden Fehler,
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 31
at Ocerloading.main(Ocerloading.java:32)
ich, dass dieser Fehler verstehen laufen tritt auf, wenn wir versuchen, auf ein Array-Element zuzugreifen, das sich außerhalb des Bereichs befindet. Aber das scheint nicht gültig zu sein.
Ich habe die Ausgabe bearbeitet.
Wo ist Zeile 7? – Stewart
Erans Antwort ist korrekt. Sie könnten dies ganz einfach entdeckt haben, indem Sie einen Debugger verwenden, um durch Ihren Code zu gehen und den Wert von "x" vor der Ausnahme zu verwenden. Die Verwendung eines Debuggers ist eine Schlüsselqualifikation für einen Programmierer, nicht etwas, was man später lernen sollte. Sobald Sie es geschafft haben, Code zu schreiben, der kompiliert, ist es an der Zeit zu lernen, wie Sie mit einem Debugger durch diesen Code gehen können. –
@Stewart, wie erwähnt, erwähnt EnhancedForLoop und daher höchstwahrscheinlich die Zeile 'for (int x: monate_days) {...' – Sid