Processing > Boucle
Contents (hide)
L'instruction for prend la forme suivante:
for ( initialisation ; condition ; incrementation ) { // bloc de code }
Nous utilisons et réservons par convention la variable i en tant que compteur dans une boucle.
for ( int i = 0 ; i < 5 ; i=i+1 ) { // à chaque itération, la valeur de i s'incrémente de +1 println(i); }
Itération |
Valeur de i |
1 |
0 |
2 |
1 |
3 |
2 |
4 |
3 |
5 |
4 |
for ( int i = 3 ; i >= 0 ; i=i-1 ) { // à chaque itération, la valeur de i est décrémentée de 1 println(i); }
Itération |
Valeur de i |
1 |
3 |
2 |
2 |
3 |
1 |
4 |
0 |
for ( int i = 2 ; i =< 4 ; i++ ) { // à chaque itération, la valeur de i est incrémentée de 1 println(i); }
Itération |
Valeur de i |
1 |
2 |
2 |
3 |
3 |
4 |
Lorsqu'il est possible que le code supprime des éléments d'une liste traversée par une boucle, il faut que la liste soit traversée à l'envers. C'est à dire à partir du dernier élément jusqu'au premier.
for ( int i = length-1 ; i >= 0; i-- ) { }
Pour un exemple pratique, voir la suppression des éléments d'un ArrayList.
for ( int i = 0 ; i < 2 ; i++ ) { for ( int j = 0 ; j < 2 ; j++ ) { println(i+" "+j); } }
Itération |
Valeur de i |
Valeur de j |
1 |
0 |
0 |
2 |
0 |
1 |
3 |
1 |
0 |
4 |
1 |
1 |
Attach:Attach:boucle_imbriquée.png Δ
Chaque itération de la boucle imbriquée dessine une cellule de la tapisserie.
i correspond au numéro de la colonne et j celui la rangée d'une cellule à une itération spécifique.
int colonnes = 10; int rangees = 8; void setup(){ size(400,400); smooth(); noStroke(); } void draw(){ background(255); float largeurColonne = width/colonnes; float hateurRangee = height/rangees; fill(0); for(int i=0 ; i < colonnes ; i++){ for(int j=0 ; j < rangees ; j++){ float x = i*largeurColonne; float y = j*hateurRangee; rect( x+1 , y+1 , largeurColonne-2 , hateurRangee-2 ); } } }
cellule = i + j * colonnes;
i = cellule % colonnes; j = int(cellule / colonnes);
i = int( ( mouseX - origineX ) / largeurColonne); j = int( ( mouseY - origineY ) / hauteurRangee);
int x =0; // initialisation while ( x < width ) { // condition line(x,0,x,height); // bloc de code x = x + 3; // incrementation }