Les structures de contrôle sont des instructions qui permettent de se "déplacer" différement dans le code. Elles sont essentielles dans beaucoup de cas. Les structures de contrôle les plus courantes sont:
if
Instruction conditionnelle qui permet de choisir entre plusieurs actions en fonction d'une condition. N'oubliez pas de mettre votre condition entre parenthèses!
int x =918;if(x >10){printf("x est supérieur à 10\n");}
Cet exemple affiche "x est supérieur à 10" car la condition x > 10 est vraie.
Vous pouvez également utiliser else ou else if pour ajouter des conditions supplémentaires:
int x =8;if(x >10){printf("x est supérieur à 10\n");}elseif(x >5){printf("x est entre 6 et 10\n");}else{printf("x est inférieur à 5\n");}
Cet exemple affiche "x est entre 5 et 10" car la condition x > 10 est fausse et la condition x >= 8 est vraie.
while
Instruction de répétition qui permet de répéter une action tant qu'une condition est vraie.
int x =0;while(x <5){printf("Bonjour !\n");
x +=1;}
Cet exemple affiche "Bonjour !" 5 fois.
for
Instruction de répétition qui permet de répéter une action un certain nombre de fois.
for(int x =0; x <10; x++){printf("x est égal à %d\n", x);// %d est remplacé par la valeur de x}
Cet exemple affiche "Bonjour !" 10 fois.
La boucle for est composée de trois parties:
L'initialisation : c'est la définition d'une variable (pas forcément un int) qui sera utilisée pour contrôler la boucle. Dans cet exemple, x est initialisé à 0.
La condition : c'est la condition qui doit être vraie pour que la boucle continue. Dans cet exemple, la condition est x < 10.
La mise à jour : c'est l'opération qui est effectuée à chaque itération de la boucle. Dans cet exemple, x est incrémenté de 1 à chaque itération.
Équivalent en Python & Ocaml
Python:
for x inrange(0,10):print("x est égal à", x)
Notes: la boucle for de C peut mentalement être simplifiée: for x in range(début, fin) par for (int x = début; x < fin; x++)
Ocaml:
for x = 0 to 10 do
print_string "x est égal à ";
print_int x;
print_newline()
done
switch
Instruction de sélection qui permet de choisir entre plusieurs actions en fonction d'une valeur et d'éviter de trop utiliser if et else. Ne pas oublier le break à la fin de chaque cas!
int x =2;switch(x){case1:printf("x est égal à 1\n");break;case2:printf("x est égal à 2\n");break;default:printf("x est différent de 1 et 2\n");break;}
Cet exemple affiche "x est égal à 2".
break
Instruction de sortie qui permet de sortir d'une boucle ou d'une instruction de sélection (comment en Python). N'est pas autorisé à l'Université de Poitiers!
for(int x =0; x <10; x++){if(x ==5){break;}printf("x est égal à %d\n", x);}
Cet exemple affiche les valeurs de x de 0 à 4.
continue
Instruction de poursuite qui permet de passer à l'itération suivante d'une boucle (comment en Python). N'est pas autorisé à l'Université de Poitiers!
for(int x =0; x <10; x++){if(x ==5){continue;}printf("x est égal à %d\n", x);}
Cet exemple affiche les valeurs de x de 0 à 9 à part 5.
Petit +
do...while
Instruction de répétition comme while mais la condition est vérifiée à la fin plutôt qu'au début, peut être utile dans certains cas spécifiques.
int x =0;do{printf("x est égal à %d\n", x);
x++;}while(x <10);