Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem java.lang.ArrayIndexOutOfBoundsException

Nejde mi o to dokončit tu funkci, chci/potřebuju jen vědět, proč mi to háže že jsem překročil meze pole, kdyz tam mám podmínku if (pole[pole.length]>pole[i+1]) then něco. Bud je ta podmínka splněná a tudíž jsem nepřekročil meze, nebo není a pak to vrátí jen nulu.
a)Proč to tak nefunguje, dík
b)Jde zapsat maximální velikost pole jako pole[pole.length]?

//Metoda, která spočítá součet čísel na sudých pozicích
public int soucetCiselNaSudePozici(int[] pole) {
int soucetCiselNaSudePozici_output=0;
for (int i=0; i<pole.length; i++){
if (pole[pole.length]>pole[i+1]) {System.out.print(pole[i]);
}else{ return 0;}
}
return soucetCiselNaSudePozici_output;
}

error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
protoze posledni index pole je pole[pole.length-1] nový
MaSo 10.11.2015 19:17
MaSo
aha, sice moc nechápu proč -1 ale ok. Díky nový
nicknicknick 10.11.2015 19:19
nicknicknick
Protože pole se indexují od nuly. poslední
Wikan 10.11.2015 19:20
Wikan
když pole.length by bylo třeba 5, tak stejnak podmínkou pole[i+1] to nemůžu překročit, protože maxim… nový
nicknicknick 10.11.2015 19:17
nicknicknick
Je naprosto jedno, kolik je i. pole[pole.length] vždy vyhodí výjimkku. nový
Wikan 10.11.2015 19:19
Wikan

Zpět do poradny Odpovědět na původní otázku Nahoru