Ich habe eine harte Zeit mit einem Array in einer for-Schleife, die Würfelzahlen 1-9 in absteigender Reihenfolge soll. Ich bekomme immer einen Fehler außerhalb der Grenzen und die gewürfelten Werte sind komplett aus. Ich wäre sehr dankbar für eine Erklärung, wo ich falsch liege, wenn ich über Arrays nachdenke. Ich glaube, das Problem ist mit meinem Index, aber ich habe Mühe zu erklären, warum.For Schleife in Array (Java) Index Out of Bounds
System.out.println("***** Step 1: Using a for loop, an array, and the Math Class to get the cubes from 9-1 *****");
System.out.println();
// Create array
int[] values = new int[11];
int[] moreValues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Create variable to store cubed numbers
double cubedNumber = 0;
// Create for loop to count in descending order
for (int counter = 9; counter < moreValues.length; counter--)
{
cubedNumber = Math.pow(counter,3);
System.out.println(moreValues[counter] + " cubed is " + cubedNumber);
}
Sobald 'counter' erreicht -1, wird es versuchen, und einen Wert des Feldes an einem Index gelesen, die so nicht existiert, Out Of Bounds. Könnte besser mit 'for (int counter = (moreValues.length) -1; counter> = 0; counter -)' gedient werden (obwohl warum Sie in Ihrem Fall lieber runterzählen würden als in mir). – AntonH
Sie wissen, dass Sie in Ihrer 'Math' Zeile den Zähler, nicht' moreValues [counter] 'cubing? –
Auch lohnt sich, obwohl nicht ganz ein Duplikat: https://stackoverflow.com/questions/5554734/what-causes-a-java-lang-arrayindexoutofboundexception-and-how-do-i-prevent-it – AntonH