2D array, welke lus?

Status
Niet open voor verdere reacties.

avang

Nieuwe gebruiker
Lid geworden
17 apr 2008
Berichten
2
Ey!

Mijn vraag ik heel kort. Welke lus moet ik gebruiken om een (2D) array[3][3] te doorlopen? en hoe verhoog ik dan best de index? Ik ken de for-lus, for-each-lus en de while-lus, maar het lijkt me onlogisch om één van dezen te gebruiken.

Alvast bedankt!
 
Een for-lus in een for-lus :)
PHP:
for (int i = 0; i < totaal; i++) {
  for (int j = 0; j < getal; j++) {
    // Wat je wilt uitvoeren
  }
}
De eerste FOR-lus gaat alle array bij langs en de tweede gaat dan van de i waar hij is alle array[j] waardes verwerken.
 
Laten we stellen dat je een array van 3 bij 3 hebt.
Dan zal hij er zo uitzien:

Code:
   -------> X
     __________    |
    |___|___|___|    |
    |___|___|___|   V
    |___|___|___|   Y

Vervolgens kan je er op 2 manieren doorheen lopen.
Laten we stellen dat de horizontale richting X is en de verticale Y

Om eerste per X alle Y's te bekijken doe je:
Code:
for(int x = 0; x < arrayNaam.length; x++){
    for(int y = 0; y < arrayNaam[0].length; y++){
      if(arrayNaam[COLOR="Red"][x][y][/COLOR] == 0){
        //hier dan nog wat code
      }
   }
}

Als je nou per Y alle X-en wil bekijken, dan kan je doen:

Code:
for(int x = 0; x < arrayNaam.length; x++){
    for(int y = 0; y < arrayNaam[0].length; y++){
      if(arrayNaam[COLOR="Red"][y][x][/COLOR] == 0){
       //hier nog nog wat code
     }
   }
}

Het verschil zit em in de if-statement die binnen de for-loops zit.

Bij de 2e forloop die erin zit, zet ik bij de arrayNaam een [0] neer. Dit doe ik omdat als je bijvoorbeeld een [3][4] array hebt en je doe bij beide alleen maar arrayNaam.length, dan komt hij nooit bij de onderste regel. Want de .length functie van een array pakt standaard de length van het eerste stuk, dus de X.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan