Principes de programmation

Boucles

2526 · Dekens Antoine

Manipulation des nombres

ou nombre approché

round( )

Arrondit un nombre à virgule flottante :

echo round( 1 );    // 1
echo round( 1.5 );  // 2
echo round( 1.49 ); // 1
echo round( 1.7 );  // 2
echo round( -1.2 ); // -1
echo round( -1.8 ); // -2

floor( )

Arrondit à l'entier inférieur :

echo floor( 1 );    // 1
echo floor( 1.5 );  // 1
echo floor( 1.49 ); // 1
echo floor( 1.7 );  // 1
echo floor( -1.2 ); // -2
echo floor( -1.8 ); // -2

ceil( )

Arrondit à l'entier supérieur:

echo ceil( 1 );    // 1
echo ceil( 1.5 );  // 2
echo ceil( 1.49 ); // 2
echo ceil( 1.7 );  // 2
echo ceil( -1.2 ); // -1
echo ceil( -1.8 ); // -1

Incrémentation

L'opérateur  ++  permet d'incrémenter, c'est à dire d'ajouter  1  à une variable :

$a = 10;

// On incrémente de 1 la valeur de $a -> 11
$a = $a + 1;

// La même incrémentation mais avec l'opérateur "++"
$a++;

Décrémentation

L'opérateur  --  permet de décrémenter, c'est à dire de soustraire  1  à une variable :

$a = 10;

// On incrémente de 1 la valeur de $a -> 9
$a = $a - 1;

// La même incrémentation mais avec l'opérateur "--"
$a--;

Les boucles simples

Les boucles permettent d'éxécuter de manière répétée un bout de code simplement et rapidement. Cela peut être vu comme une manière automatisée de copié-collé une ligne de code.

Nous allons voir deux façons de les écrire :

  • while
  • for
Bien sûr il en existe d'autres, comme la foreach.

while

La boucle while permet de créer une boucle qui s'exécute tant qu'une condition de test est vérifiée. La condition est évaluée avant d'exécuter le code contenue dans la boucle. On y retrouvre :

  • une initialisation d'un compteur
  • une condition (ou test de séjour)
  • un bout de code à éxécuter
  • une modification du compteur

Syntaxe

// initialisation du compteur
$i = 0;

// notre condition "tant que $i est strictement plus petit que 10"
white( $i < 10 ) {
  // Notre code entre accolades
  // on affiche la valeur de $i
  echo $i;

  // Il faut incrémenter $i pour avancer dans notre boucle
  $i++;
}
Attention à ne pas oublier d'incrémenter la valeur de $i, au risque de répéter le code de manière infinie et bloqué le reste des instructions.

for

La boucle for crée une boucle composée de trois expressions séparées par des points-virgules :

  • initialisation d'un compteur
  • une condition (ou test de séjour)
  • une modification du compteur

Syntaxe

// Les 3 expressions entre parenthèses
for( $i = 0; $i < 10; $i++ ) {
  // Notre code entre accolades
  // on affiche la valeur de $i;
  echo $i;
}
Cette boucle est plus verbeuse, mais comme toute la logique de répétition se trouve entre parenthèses cela est plus clair et évite les erreurs.

Exercice

  1. Afficher avec echo les chiffres à partir de 0 jusqu'à 9 avec la boucle while.
  2. Afficher avec echo les chiffres depuis de 9 jusqu'à 0 avec la boucle for.

Traverser un tableau

La dernière fois on a vu comment créer un tableau, manipuler ses données, et afficher un élément en particulier :

// Un nouveau tableau avec 3 éléments de type 'string'
$pokedex = [ 'pikachu', 'onix', 'carapuce' ];

// On ajoute un élément de type 'string'
$pokedex[] =  "Stari";

// On affiche le deuxième élément
echo $pokedex[ 1 ];

Mais comment afficher chaque entrée de notre tableau ? Avec l'aide d'une boucle, voici les étapes :

  1. Récupérer la longueur de notre tableau
  2. Prévoir une boucle avec une condition avec notre longueur
  3. Utiliser le compteur comme indice pour afficher les éléments de notre tableau

Récupérer la longueur de notre tableau

// Notre tableau
$pokedex = [ 'pikachu', 'onix', 'carapuce' ];

// Récupérer la longueur avec 'count'
$length = count( $pokedex );

Afficher chaque élément

$pokedex = [ 'pikachu', 'onix', 'carapuce' ];
$length = count( $pokedex );

// $i avec une valeur de départ 0 
// tant que $i est strictement plus petit que la longueur de notre tableau
// on continue d'augmenter la valeur de $i
for( $i = 0; $i < $length; $i++ ){

  // $i va s'incrémenter de 1 et permettre 
  // d'afficher chaque entrée de notre tableau
  echo $pokedex[ $i ];
}

Avec la boucle while

$pokedex = [ 'pikachu', 'onix', 'carapuce' ];
$length = count( $pokedex );

// $i avec une valeur de départ 0 
$i = 0;

// tant que $i est strictement plus petit que la longueur de notre tableau
while( $i < $length ) {

  // Affiche chaque entrée de notre tableau
  echo $pokedex[ $i ];

  // on continue d'augment  er la valeur de $i
  $i++;
}

Exercices

Moyenne

Vous possédez 6 pokemons, qui ont chacun un niveau différent (10, 5, 30, 13, 21, 16). En utilisant une boucle while, nous voulons afficher le niveau moyen de votre équipe avec un echo;

Nombre pair

Avec ce même tableau de données, mais en utilisant une boucle for, on veut afficher, pour chaque Pokémon, si son niveau est pair ou impair ou non.

Indice : condition avec l'opérateur de reste  % 

Moyenne++

Toujours avec ces données, on veut calculer la moyenne des niveaux pairs.

1/4

1/1