Bonjour,
J'ouvre cette discussion pour éviter de polluer une discussion existante sur un point précis.
En programmation l'opération de base est le saut, généralement associé à un test.
La formalisation est la suivante :
Si telle condition est vraie, alors l'exécution se poursuit là.
Dans le langage C, il y a plusieurs moyens d'écrire cela. (liste non exhaustive)
Dans la pratique, cette question peut se poser de façon répétitive pour un certain nombre d'éléments. Il faudra alors utiliser la notion de boucle.Code:if ([condition]) { // traitement OUI } else { // traitement NON }
Il existe en C deux écritures possibles avec les mots clé for et while
Ces deux instructions nécessitent 3 expressions
expr1 : initialisation
expr2 : test
expr3 : incrémentation
Avec l'instruction for, le code se présentera de la façon suivante
Avec l'instruction whileCode:for (expr1; expr2; expr3) [instruction]
Le choix entre les deux ne dépend que de préférence, compréhension, clarté.Code:expr1; while (expr2) { [instruction] expr3; }
K&R : "Le choix entre while et for est surtout une affaire de goût".
On notera au passage qu'il y a une instruction particulière qui utilise l'instruction while :
L'instruction expr3 n'est pas précisée, mais elle soit exister directement ou non.Code:expr1; do { [instruction] }while (expr2);
Autre cas particulier : la boucle infinie.
Cela peut s'écrire indifféremment
Il est bien-sûr indispensable que le bloc contienne une instruction break ou return.Code:for ( ; ; ) { ... } ou while (!NULL) { ... }
Concernant les conditions, il existe 2 instructions, if et switch.
L'instruction switch a une caractéristique particulière par rapport au if, les adresses de sauts, c'est à dire les différentes possibilités sont prévues dès la compilation.
On remarquera que si n vaut 1, alors les traitements 1 et 10 sont efféctués.Code:switch (n) { case 0: trait0; break; case 1: trait1; case 10: trait10; break; case 2: trait2; break; défault: traitement_default; }
Cette instruction est généralement utilisée lorsque le nombre de cas est grand et strictement connu.
C'est une application stricte du célèbre goto etiquette, déprécié pour des raisons historiques.
-----