Instruction sélective switch-case Instruction répétitive do-while For Plan cours Instruction sélective switch-case Instruction répétitive do-while For
Switch-case Instruction sélective Exemple : switch-case switch(choix){ Se comporte comme if qui n’évalue que des cas d’égalité (==) Les instructions à exécuter doivent se terminer par le mot réservé break sauf le dernier qui est optionnel. Exemple : switch(choix){ case ‘a’ : printf(« vous avez choisi a »);break; case ‘b’ : printf(« vous avez choisi b »); break; case ‘q’ : printf(« vous avez choisi q »); }
Switch-case Exemple : switch(choix){ } switch-case On peut mettre plusieurs case : consécutifs. Exemple : switch(choix){ case ‘a’ : case’b’ : case ‘q’ : printf(« choix valide »);break; }
Switch-case Exemple : switch-case switch(choix){ } On peut ajouter une option default à la fin. Cette dernière est comme un else final qui sera exécuté si aucun autre cas précédent ne l’a été. Exemple : switch(choix){ case ‘a’ : printf(« vous avez choisi a »);break; case ‘b’ : printf(« vous avez choisi b »); break; case ‘q’ : printf(« vous avez choisi q »); break; default : printf(« choix invalide»); }
Switch-case Instruction sélective Exemple : Toutes les instructions entre case : et break sont exécutées. Exemple : switch(choix){ case ‘a’ : printf(« vous avez choisi a »); case ‘b’ : printf(« vous avez choisi b »); case ‘q’ : printf(« vous avez choisi q »); default : printf(« choix invalide»); } Les quatre messages seront affichés
Switch-case Forme générale : switch(expression){ case option1 : instruction(s); break; case option2 : casse option3 : instruction(s); break; default : instruction(s); } S’Il y a plus d’une instruction dans un case, il faut des accolades.
Switch-case Exercice Dites ce que le code suivant affichera choix == ‘b’ switch(choix){ case ‘a’ : printf(« vous avez choisi a »); case ‘b’ : printf(« vous avez choisi b »); case ‘q’ : printf(« vous avez choisi q »); default : printf(« choix invalide»); }
Do-while Instruction répétitive Forme générale : do-while do{ Il est possible d’évaluer l’expression de répétition à la fin d’un bloc au lieu du début. Forme générale : do{ tâches à répéter tant que l’expression, qui suit le while, est différente de zéro }while(expression booléenne);
Do-while #include <stdio.h> #include <stdlib.h> Exemple : Validation d’un nombre entré qui doit être entre 1 et 10 #include <stdio.h> #include <stdlib.h> int main(void){ int nombre; do{ printf(« Entrez un nombre entre 1 et 10 svp : »); scanf («%d», &nombre); if(nombre < 1 || nombre > 10) printf(« Votre nombre est invalide »); }while(nombre < 1 || nombre > 10); printf(« Votre nombre est valide »); return EXIT_SUCCESS; }
For Rappel du while int tour = 1; while (tour <= nombre ){ Étapes à réaliser lorsqu’on sait le nombre de fois à itérer int tour = 1; while (tour <= nombre ){ printf(«%d »,tour); tour++; } return EXIT_SUCCESS; initialisation Analyse de la condition d’arrêt de la boucle Convergence vers la condition d’arrêt
For Instruction répétitive for Sert lorsqu’on sait exactement le nombre de fois à itérer. Peut toujours être remplacée par while ou do-while.
int i; for(i=1; i<=10; i++) { //traitement } Forme générale for (initialisation;expression booléenne;itération ){ Instructions } Exemple for : L’initialisation est faite une seule fois avant l’évaluation de l’expression booléenne. L’expression booléenne est évaluée avant chaque boucle et doit se lire « tant que » L’itération est faite en dernier à chaque tour de boucle, après le traitement Les accolades sont optionnelles s’il n’y a qu’une instruction dans la boucle int i; for(i=1; i<=10; i++) { //traitement }
For Écrire une fonction qui calcule et retourne le factoriel d’un nombre. En utilisant la boucle for. Définition du factoriel 0! = 1 n! = n * (n-1)! Exemple : 5! = 5 * 4 * 3 * 2 * 1 * 0! = 120
For long factoriel(long n){ long resultat = 1; int i; for(i = 2; i<=n;i++) resultat = resultat * i; return resultat; }
Résumé Vous devez être en mesure de comprendre et d’utiliser autant les instructions : if, switch, while, for, do-while.
FIN DU COURS