Accueil

Formation

Site fadagogo.com
Programmation
Automation
HTML
PHP

Sénégal
Asbl
Sur le chemin...
Dernière mise à jour : le vendredi 23 mai 2003

Les structures de contrôle

Les structures de contrôle vont permettre les traitements complexes.

Elles sont essentiellement de deux types:

  1. Les conditionnelles ou alternatives
  2. Les répétitives ou itératives

Les structures conditionnelles ou alternatives

L'alternative simple (SI)

L'alternative simple d'utilisation universelle est le SI ALORS SINON

Voici différents cas possibles d'utilisation et la syntaxe y associée.

Le SI tout seul

if (condition)
       {

       instruction 1;
       instruction 2;
       }

Il faut savoir que

  1. La condition doit toujours être entre parenthèses
  2. La condition peut être une expression complexe faisant intervenir des opérateurs divers (on veillera à jouer fort à propos des parenthèses supplémentaires)
  3. Une instruction unique ne nécessite pas l'utilisation d'accolades (qui regroupent plusieurs instructions en une instruction unique)
  4. Ce système rend inutile l'utilisation du FIN SI
  5. Veillez à la mise en page pour la lisibilité de votre code

Le SI - SINON

if (condition)
       {

       instruction 1;
       instruction 2;
       }
else
       {

       instruction 3;
       instruction 4;
       }

Il faut savoir que

  1. Les instructions 1 et 2 se feront quand la condition donnera un résultat VRAI
  2. Les instructions 3 et 4 se feront quand la condition donnera un résultat FAUX

Le SI - SINON SI - SINON

Il s'agit en fait de facilité le placement de conditionnelles en cascade. Ca fonctionne comme ceci:

if (condition 1)
       {

       instruction 1;
       instruction 2;
       }
elseif (
condition 2)
       {

       instruction 3;
       instruction 4;
       }
       else
                 {

               instruction 5;
               instruction 6;
               }

Il faut savoir que

  1. Plusieurs elseif peuvent être imbriqués les uns dans les autres
  2. Dès qu'une condition VRAIE est rencontrée:
    • le bloc correspondant d'instructions est exécuté
    • l'entièreté de la structure est interrompue (toutes les conditons suivantes sont abandonnées)
  3. les instructions 3 et 4 ne seront exécutées que si la condition 1 est FAUSSE et la condition 2 est VRAIE
  4. Le bloc d'instructions du else final ne sera exécuté que si toutes les conditions préalables étaient FAUSSES.

L'alternative multiple (SWITCH)

La facilité des conditionnelles en cascade en est encore plus simple. Ca fonctionne comme ceci:

switch variable
     {
       case
valeur1 :
             instruction 1;
             instruction 2;
             break;
       case
valeur2 :
             instruction 3;
             instruction 4;
             break;
       case
valeur3 :
             instruction 5;
             instruction 6;
             break;
       default:

             instruction 7;
             instruction 8;
     }

Il faut savoir que

  1. Contrairement au cas précédent et suivant les versions 3 ou 4 du langage, le fait de trouver une condition VRAIE ne provoque pas nécessairement l'abandon des conditions suivantes. Le break; permet à coup sûr d'abandonner la structure dès qu'une condition VRAIE est rencontrée.
  2. Le nombre de case est bien entendu libre et sera adapté à votre cas
  3. default (facultatif) permet de prévoir une série d'instructions au cas où aucune condition VRAIE n'aurait été rencontrée préalablement.

Les structures répétitives ou itératives

La boucle DO ... WHILE ...

Cette boucle est à rapprocher du REAPEAT en Pascal:

  1. La boucle est au moins effectuée une fois
  2. La condition donnant un résultat VRAI permet de sortir de la boucle
  3. Un break; permet de sortir prématurément de la boucle au cas d'un test quelconque positif
do
       {

       instruction 1;
       instruction 2;
       }
while (
condition)

La boucle WHILE ...

Cette boucle est à rapprocher du TANT QUE en Pascal:

  1. La boucle peut ne jamais être exécutée
  2. La condition donnant un résultat VRAI permet d'effectuer la boucle
  3. On veillera à ce que la condition d'entrée de boucle soit valide (que les éléments nécessaires au test soient disponibles)
  4. Un break; permet de sortir prématurément de la boucle au cas d'un test quelconque positif
while (condition)
       {

       instruction 1;
       instruction 2;
       }

La boucle FOR

Cette boucle est à rapprocher du FOR en Pascal, mais sa syntaxe est un peu plus ésotérique.

for (initialisation(s); expression; incrémentation)
       {

       instruction 1;
       instruction 2;
       }

Ceci nécessite quelques explications:

  1. La zone d'initialisation permet d'initialiser la variable de la boucle en y plaçant la valeur initiale ($counter = 1; par exemple)
  2. Si vous avez d'autres variables à initialiser à l'entrée dans la boucle, ne vous gênez pas, c'est permis ($counter = 1, $somme = 0; par exemple)
  3. La zone "expression" contiendra la condition de sortie de la boucle ($counter <= 10; par exemple), mais cela peut être une autre expression booléenne qui n'ait rien à voir avec le compteur
  4. La boucle peut ne jamais être exécutée si la condition de départ est directement fausse
  5. On veillera à ce que la condition d'entrée de boucle soit valide (que les éléments nécessaires au test soient disponibles)
  6. Tant que la condition donne un résultat VRAI, la boucle continue à s'effectuer
  7. La zone "incrémentation" contiendra les instructions d'incrémentation ou de décrémentation du compteur ($counter++) ou $counter--) par exemple)
  8. Un break; permet de sortir prématurément de la boucle au cas d'un test quelconque positif

◊ ◊ ◊

© Rupert Meurice de Dormale 2003