Apprendre le PHP #5 – boucles

Les boucles permettent de répéter du code un certain nombre de fois.

On continue l’apprentissage de PHP avec un nouvel élément clé de la programmation et de l’algorithmie : les boucles. Elles vont nous permettre de répéter des instructions. Elles sont aussi utiles quand il s’agit de parcourir des tableaux.

Au programme :

La boucle for en PHP

Cette première boucle va fonctionner avec un « compteur » qui va nous permettre de définir précisément le nombre d’itération à réaliser, ainsi que l’évolution de ce « compteur ».

Par exemple, si on souhaite réaliser 100 itérations, c’est à dire 100 fois la même instruction, ou même groupe d’instructions, on va coder quelque chose qu’on pourra lire « pour un compteur de 1 à 100 ».

Voici ce que ça donne en PHP :

// Le compteur est une variable, souvent nommée $i pour "itération"
for ($i = 0; $i < 100; $i++) {
   // Instruction ou groupe d'instructions
}

Un peu d’explications :

  • On commence avec le mot clé for puis on ouvre les parenthèses
  • On crée notre variable d’incrémentation (= compteur) et on définit sa valeur de départ, ici 0.
  • On met un ;
  • On définit la « condition d’arrêt ». Dès que cette condition n’est plus respectée, on s’arrête. Ici, tant que $i est inférieur à 100, je continue.
  • On met un nouveau ;
  • On définit la méthode d’incrémentation. Dans 90% des cas, on incrémente de 1 en 1 et on écrit donc $i++. Mais on peut augmenter de 2 en 2 ($i += 2), décrémenter ($i–) ou faire des choses encore plus compliquées.
  • Viennent enfin les accolades. Tout le code contenu dans ces accolades sera répété à chaque itération.

On peut tout à fait utiliser $i dans le bloc d’instructions :

// Calcul de la somme des 100 premiers nombres
$somme = 0;
for ($i = 1; $i <= 100; $i++) {
   $somme += $i;
}

Attention à bien gérer l’initialisation de $i et la condition d’arrêt, au risque de ne réaliser le bon nombre d’itérations :

for ($i = 1; $i <= 100; $i++) // 100 itérations
for ($i = 0; $i <= 100; $i++) // 101 itérations
for ($i = 0; $i < 100; $i++) // 100 itérations
for ($i = 1; $i < 100; $i++) // 99 itérations

Bien que $i puisse être utilisé dans le bloc d’instructions (pour un affichage, pour un calcul, etc.), il est recommandé de ne pas modifier sa valeur, au risque de se perdre entre les changements apportés dans le bloc d’instructions et les changements automatiquement apportés lors des itérations ($i++).

Les cas d’usage de la boucle for sont vraiment nombreux, c’est une structure qu’il est important de maitriser.

La boucle while en PHP

Pour la boucle for, on définit précisément le nombre d’itérations à réaliser. Le while sert justement quand on ne sait pas combien il y a aura d’itérations. Les instructions de la boucle vont s’exécuter « tant que » la condition de base définie est vérifiée.

Un corrigé dédié à la boucle while a été écrit. Il s’appuie sur un challenge dans lequel on ne sait donc pas d’avance combien d’itérations on va réaliser. Voici le corrigé pour tout comprendre : while en PHP.

La boucle foreach en PHP

La boucle foreach sert à parcourir un tableau. 2 articles dédiés traitent de ces sujets pour tout comprendre :

break et continue

break et continue fonctionnent pour toutes les boucles. Ce sont des instructions qui peuvent à la fois permettre d’économiser des ressources, car on évite d’exécuter des instructions qui ne servent plus à rien, mais aussi de mieux organiser son code, de le rendre plus lisible et plus maintenable.

break

break est utilisé pour interrompre ou arrêter une boucle. Dès que break est rencontré c’est comme ci on se rendait directement à la dernière accolade de la boucle.

Si on a imbriqué plusieurs boucles entre elles, alors on peut faire des break x :

// Si j'ai 1 boucle dans 1 boucle, break ne va interrompre que la boucle dans laquelle je me trouve

break 2; // permet d'arrêter les 2 boucles

// Si 3 boucles : 
break 3;

// Et ainsi de suite... même s'il on a (très) rarement 4 boucles ou + d'imbriquées

continue

continue est utilisé pour interrompre l’itération en cours et passer à la suivante. C’est comme ci on se rendait directement à la première accolade de la boucle, en passant à l’itération suivante :

  • Dans le cas d’un for avec $i, $i sera donc incrémenté (selon paramétrage)
  • Dans le cas d’un foreach on passera à l’élément suivant
  • Si la condition d’arrêt du for n’est plus remplie ou si tous les éléments du tableau ont été parcourus, alors on sort de la boucle

Comme pour le break, dans le cas de boucles imbriquées, on peut réaliser un continue sur plusieurs boucles d’un coup.

Tu trouveras dans l’article sur foreach des exemples pour break et continue :

break et continue sont aussi excellents pour se passer des else en PHP.

Conclusion

Les boucles sont une base fondamentale de la programmation et de l’algorithmie en général. On les retrouve dans tous les programmes informatiques. Il est très important de bien les maitriser.

Maintenant que tu as vu les variables, les conditions, les tableaux et les boucles, tous les challenges de code du niveau débutant sont à ta portée. N’oublie pas que la meilleure façon d’assimiler et de progresser… c’est de coder 😉

Puis tu peux continuer avec les fonctions PHP.


Qui a codé ce superbe contenu ?

Keep learning

Other content to discover