4.16 Exercice: Etoiles

Cet exercice très populaire chez les débutants en programmation consiste à écrire une fonction afficherEtoiles(rows) qui dessine un triangle d'étoiles. À chaque appel avec un nombre rows, on affiche autant de lignes que demandé, et chaque ligne contient un nombre d'étoiles égal à son numéro. Avec afficherEtoiles(5), la ligne 1 contient une étoile, la ligne 2 en contient deux, et ainsi de suite jusqu'à la ligne 5. Avec 1, on obtient une seule étoile ; avec 2, deux lignes.

Construire la solution avec deux boucles imbriquées

On commence par une boucle externe qui parcourt chaque ligne : row part de 1 et s'incrémente tant qu'il reste inférieur ou égal à rows. À l'intérieur, on déclare une variable pattern initialisée à une chaîne vide. Selon la valeur de row, on doit y ajouter un certain nombre d'étoiles, ce qui demande une seconde boucle interne. Cette boucle interne fait varier i de 0 tant que i est inférieur à row, et concatène une étoile à pattern à chaque tour. Quand row vaut 5, la boucle interne tourne cinq fois et produit cinq étoiles. À la fin de la ligne, on affiche le pattern avec console.log.

function afficherEtoiles(rows) {
  for (let row = 1; row <= rows; row++) {
    let pattern = '';
    for (let i = 0; i < row; i++)
      pattern += '*';
    console.log(pattern);
  }
}

En sauvegardant et en appelant la fonction avec 1, on obtient une étoile ; avec 2, on obtient deux lignes ; avec 5, un triangle complet. Ce qu'on a ici, c'est ce qu'on appelle un nid de boucles : une boucle à l'intérieur d'une autre boucle. Ce modèle apparaît dans énormément d'algorithmes (tris, parcours de matrices, génération de motifs).