Hallo,
ich habe folgende Methode die dutzende Male aufgerufen wird:
Compilieren klappt aber beim Ausführen des Programms sagt er mir dass die methode von ner anderen Stelle im Programm aufgerufen wird und in der Zeile mit dem while eine
java.lang.ArrayIndexOutOfBoundsException: -1
produziert.
Ich kapiere einfach nciht wie es der Index da überhaupt schafft, aus den Grenzen des zulässigen rauszukommen.
Ich meine, anfangs wird er ja auf den maximalen indexwert, nämlich arraylänge-1 gesetzt und danach so lange verringert bis entweder die eine bedingung nciht mehr erfüllt wird oder eben der index <0 ist.
heißt, mal von der bedingugn abgesehen ist im worst case am ende der index =0, while shcleife wird ein letztes mal aufgerufen, index---, nun also index=-1, while schleife wird nicht mehr augerufen weil index nicht >=0, fertig.
wie kann der index da ausserhalb der zulässigen bereiche liegen?
wo ist mein fehler da?
ich habe folgende Methode die dutzende Male aufgerufen wird:
Java:
public static boolean increasing(long[] array,long max){
//beispiel: array={0,1,2}, array.length=3, index=3, max=6
int index=array.length-1;
//6-3+1 +index=4+index ={4,5,6}
while((array[index]==(max-array.length+1+index))&&(index>=0)){
index--;
}
if(index<0){return false;}
array[index]++;
for (int i=1;index+i<array.length;i++){
array[index+i]=array[index]+i;
}
return true;
}
Compilieren klappt aber beim Ausführen des Programms sagt er mir dass die methode von ner anderen Stelle im Programm aufgerufen wird und in der Zeile mit dem while eine
java.lang.ArrayIndexOutOfBoundsException: -1
produziert.
Ich kapiere einfach nciht wie es der Index da überhaupt schafft, aus den Grenzen des zulässigen rauszukommen.
Ich meine, anfangs wird er ja auf den maximalen indexwert, nämlich arraylänge-1 gesetzt und danach so lange verringert bis entweder die eine bedingung nciht mehr erfüllt wird oder eben der index <0 ist.
heißt, mal von der bedingugn abgesehen ist im worst case am ende der index =0, while shcleife wird ein letztes mal aufgerufen, index---, nun also index=-1, while schleife wird nicht mehr augerufen weil index nicht >=0, fertig.
wie kann der index da ausserhalb der zulässigen bereiche liegen?
wo ist mein fehler da?