Toon posts:

Foutmelding met een Array-ForLoop

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag:
Bij deze Code geeft ie aan, dat er een Fout in zit, als ik de applicatie start. Dit is gewoon een Oefening.
Het belangrijke is alleen die foutmelding.

Foutmelding:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at ActeurApp.main(ActeurApp.java:12)

rij 12: puntenTab[i] = new Punt(random(), random());

Volledig code van de class:

[
import java.util.Random;

public class ActeurApp {
public static void main(String[] args) {

Punt[] puntenTab = new Punt[99];

for(int i = 0; i <= puntenTab.length; i++){
puntenTab[i] = new Punt(random(), random());
}

for(int i = 0; i <= puntenTab.length; i++){
puntenTab[i].drukAf();
}

System.out.println(puntenTab[0].berekenAfstand(puntenTab[98]));

Egel e = new Egel(15,13);
Konijn k = new Konijn(96,13);

e.Interageer(k);
k.beschrijf();
k.stapLinks();
e.stapRechts();

Acteur[] act = new Acteur[1];
act[0]=k;
act[1]=e;

for(int i = 0; i <= act.length; i++){
act[i].beschrijf();
}

}
public static int random(){
int MIN = 0;
int MAX = 100;
Random r = new Random();
int rand = r.nextInt(MAX-MIN)+MIN;
return rand;
}

}

]

Beste antwoord (via Verwijderd op 18-01-2017 22:09)


  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Haal hier

code:
1
for(int i = 0; i <= puntenTab.length; i++)


De "=" eens weg? Dan wordt het dus dit:

code:
1
for(int i = 0; i < puntenTab.length; i++)


De reden dat het misgaat is dat de length van een array 1, 2 of 3 geeft terwijl de index van het eerste element 0 is.

Alle reacties


Acties:
  • 0 Henk 'm!

  • TommyboyNL
  • Registratie: Januari 2006
  • Niet online
Zet je code even tussen [ code ] tags, dat maakt het een stuk leesbaarder.

Binnen welke range moeten de argumenten van de Punt() liggen?
Wat voor waarden geeft random() terug?

Acties:
  • 0 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 08-10 17:33

Acid_Burn

uhuh

De foutmelding is duidelijk, je probeert een array element te benaderen welke niet bestaat. Kijk eens naar je loop variabele, welke waarden deze kan krijgen en welke waarden de indexen van je array hebben ;)

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@TommyboyNL:
Bedankt voor advies, heb het ook gedaan.

De range van de argumenten liggen tussen 0 en 99, dus 99 is de maximale waarde, en 0 is de minimale waarde van de argumenten int x en int y.

random() geeft een waarde tussen 0 en 99(inclusief) terug.

@Acide_Burn:
Hoe bedoelt u dat?

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Haal hier

code:
1
for(int i = 0; i <= puntenTab.length; i++)


De "=" eens weg? Dan wordt het dus dit:

code:
1
for(int i = 0; i < puntenTab.length; i++)


De reden dat het misgaat is dat de length van een array 1, 2 of 3 geeft terwijl de index van het eerste element 0 is.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@xh3adshotx: Hartelijk bedankt

Acties:
  • +1 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 08-10 17:33

Acid_Burn

uhuh

Precies wat ik zeg, alleen wilde ik dat hij zelf zou bedenken waarom het fout ging ;)

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site

Pagina: 1