Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Pisze przykładowy kod z "Java.Podstawy" w NetBeans i wyskakuje i powyższy komunikat przy double oldBalance= balances[j-1][z]

Kopiuj
 public class TablicaWielowymiarowa {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        final double STARTRATE= 10;
        final int NRATES= 6;
        final int NYEARS= 10;
        
        double[] interestRate= new double[NRATES];
        for(int i=0; i<interestRate.length; i++)
            interestRate[i]= (STARTRATE+ i)/ 100.0;
        double[][] balances= new double[NYEARS][NRATES];
        
        for(int i=0; i< balances[0].length; i++) balances[0][i]= 10000;
        
        for(int j=0; j<balances.length; j++)
        {
            for(int z=0; z<balances[j].length; z++)
            {
               double oldBalance= balances[j-1][z];
                double interest= oldBalance* interestRate[z];
                balances[j][z]= oldBalance+ interest;
            }
        }
        for(int i=0; i< interestRate.length; i++)
            System.out.printf("%9.0f%%", 100 * interestRate[i]);
        System.out.println();
        for(double[] row: balances)
        {
            for(double b: row)
            System.out.printf("%10.2f", b);
                    System.out.println();
        }
    }
    
}
  • Rejestracja: dni
  • Ostatnio: dni
0

Ciężko sprawdzić, w której linii ? Wychodzisz po za tablice, np. jesli tablica ma 10 elementów, Ty odwołujesz się do 11. Jesli nie potrafisz poradzić sobie z takim błędem to rzuć programowanie...

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

o_O

Kopiuj
            for(int z=0; z<balances[j].length; z++)
            {
               double oldBalance= balances[j-1][z];

Robisz fora po indeksach z dla elementu balances[j] ale odwołujesz się tymi indeksami do balances[j-1] które może mieć mniej indeksów z. Brawo.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.