Tutoriel de programmation Linux C Partie 16 : Instructions Switch, Break et Continue

Nous avons déjà abordé certaines des boucles de base utilisées dans le langage de programmation C, notamment for, while et do…while. Ces boucles, comme la plupart d’entre vous en conviendront, t’aident essentiellement lorsque des instructions doivent être exécutées de manière répétée sous une ou plusieurs conditions. Ainsi, tu écris moins de code tout en le rendant plus lisible par la même occasion.

Tout comme ces boucles, il existe certaines déclarations qui t’aident à écrire un meilleur code en C. Certaines de ces déclarations sont Switch, Break, Continue et Goto. Discutons-les une par une.

Déclaration Switch

Switch est essentiellement une instruction qui accepte une valeur, en fonction de laquelle elle exécute un morceau de code. C’est une instruction de contrôle, car elle change le contrôle de l’exécution en fonction de la valeur d’entrée.

Voici la structure d’un switch :

...
...
...
switch (expression)
{
case const_val_1: //some code
break;
case const_val_2: //some code
break;
case const_val_3: //some code
break;
default: //some code
break;
}
...
...
...

Ici, ‘expression’ est une valeur qui est transmise en entrée à l’instruction ‘switch’, et selon le cas qui correspond à la valeur de ‘expression’, le code correspondant est exécuté. Voici un exemple de travail dans lequel l’interrupteur rend le code moins complexe et améliore la lisibilité.

#include <stdio.h>

int main()
{
int roll;
printf("Enter a roll number in range of 1 - 5: ");

scanf("%d", &roll);

switch(roll)
{
case 1: printf("name of student is RON");
break;
case 2: printf("name of student is ROGER");
break;
case 3: printf("name of student is SAM");
break;
case 4: printf("name of student is LUCIE");
break;
case 5: printf("name of student is DORN");
break;
default: printf("Entered roll number didn't match any candidate");
break;
}
return 0;
}

Ici, le numéro de rouleau saisi par l’utilisateur dans l’entrée est transmis à l’instruction ‘switch’, et le code correspondant au cas qui correspond est exécuté.

Note que l’instruction ‘break’ à la fin de chaque cas permet de s’assurer que l’instruction switch est quittée après l’exécution du cas correspondant. Si aucune instruction ‘break’ n’est présente, le flux d’exécution passe au cas suivant.

Le cas « par défaut » est là pour s’assurer que l’utilisateur est informé si aucun cas ne correspond à la valeur de l’instruction switch. Il n’est pas obligatoire d’avoir un cas « par défaut », mais c’est toujours utile.

De plus, comme le cas par défaut est généralement le dernier cas de l’instruction switch, il n’est pas non plus obligatoire d’avoir une  » pause  » à la fin, mais c’est encouragé car c’est considéré comme une programmation défensive (juste au cas où d’autres cas seraient ajoutés à l’avenir après le cas  » par défaut « ).

Interrompre et continuer

Note qu’en plus de ‘switch’, l’instruction ‘break’ peut aussi être utilisée pour sortir prématurément de boucles comme for, while, et do…while.

...
...
...
for(i=0; i<10; i++)
{
//statements

if(condition)
break;

//statements
}
...
...
...

Pour en venir à ‘continue’, tout comme ‘break’ provoque une sortie anticipée d’une boucle, ‘continue’ force l’itération suivante de la boucle, qui dans le cas de while et do…while commence par la vérification de la condition et dans le cas d’une boucle ‘for’ est l’étape d’incrémentation.

Voici un exemple qui utilise ‘continue’ pour sauter les nombres impairs dans une boucle for :

...
...
...
for(i=0; i<100; i++)
{
if(i%2)
continue;

//statements
}
...
...
...

Note que tu ne peux pas utiliser ‘continue’ à l’intérieur d’un switch, sauf dans les cas où le switch fait lui-même partie d’une boucle.

Conclusion

Dans ce tutoriel, nous avons abordé les instructions break, continue et switch. Essaie les exemples ou le code de démonstration que nous avons partagés dans ce tutoriel sur ton système pour mieux comprendre ces concepts. En cas de doute ou de question, fais-nous signe dans les commentaires ci-dessous.

Vous aimerez aussi...