Instructions conditionnelles en C : if, else, if imbriqués avec exemple

⚡ Résumé intelligent

Les instructions conditionnelles en C contrôlent le flux d'un programme en exécutant des blocs de code uniquement lorsqu'une condition testée est vraie, permettant ainsi la prise de décision grâce aux constructions en échelle if, if-else, imbriquées et else-if.

  • 🔤 instruction if : Une instruction if n'exécute son bloc que lorsque la condition est vraie (et non nulle), tandis que zéro signifie faux.
  • 🔀 Si-sinon : La structure if-else ajoute une branche fausse, exécutant un bloc lorsque la condition est vraie et un autre lorsqu'elle est fausse.
  • Opérateurs relationnels: Six opérateurs (<, <=, >, >=, ==, !=) construisent les expressions booléennes que chaque condition teste.
  • 🪜 Sinon, échelle : Une structure else-if imbriquée vérifie plusieurs expressions de haut en bas et exécute la première branche vraie, ou une structure else par défaut.
  • Opérateur ternaire: L'expression conditionnelle ?: écrit une instruction if-else compacte qui renvoie l'une des deux valeurs sur une seule ligne.
  • 🤖 Aide à l'IA : GitHub Copilot rédige et examine la logique if-else, signale les accolades manquantes et suggère des conditions plus propres.

Instructions conditionnelles en C : IF, IF ELSE et IF ELSE imbriqués

Qu’est-ce qu’une instruction conditionnelle en C ?

En langage C, les instructions conditionnelles servent à prendre des décisions en fonction de conditions. Elles s'exécutent séquentiellement lorsqu'aucune condition ne les entoure. Si une condition est ajoutée à un bloc d'instructions, le flux d'exécution peut être modifié selon le résultat de cette condition. Ce processus est appelé prise de décision en C.

Contrairement à boucles en C Ce code répétitif, ces instructions conditionnelles, choisissent un chemin.

En programmation « C », les instructions conditionnelles sont possibles à l'aide des deux constructions suivantes :

  1. Si déclaration
  2. Instruction if-else

On l'appelle également branchement car un programme décide quelle instruction exécuter en fonction du résultat de la condition évaluée.

Si déclaration

C’est l’une des déclarations conditionnelles les plus puissantes. L'instruction If est chargée de modifier le flux d'exécution d'un programme. L'instruction If est toujours utilisée avec une condition. La condition est évaluée avant d'exécuter toute instruction à l'intérieur du corps de If. La syntaxe de l'instruction if est la suivante :

 if (condition) 
     instruction;

La condition est évaluée comme vraie ou fausse. True est toujours une valeur différente de zéro et false est une valeur qui contient zéro. Les instructions peuvent être une instruction unique ou un bloc de code entouré d'accolades { }.

Le programme suivant illustre l'utilisation de la construction if dans la programmation 'C' :

#include<stdio.h>
int main()
{
	int num1=1;
	int num2=2;
	if(num1<num2)		//test-condition
	{
		printf("num1 is smaller than num2");
	}
	return 0;
}

Sortie :

num1 is smaller than num2

Le programme ci-dessus illustre l'utilisation de la construction if pour vérifier l'égalité de deux nombres.

Organigramme de l'instruction if en C

  1. Dans le programme ci-dessus, nous avons initialisé deux variables avec num1, num2 avec respectivement la valeur 1, 2.
  2. Ensuite, nous avons utilisé if avec une expression de test pour vérifier quel nombre est le plus petit et quel nombre est le plus grand. Nous avons utilisé une expression relationnelle dans la construction if. Puisque la valeur de num1 est inférieure à num2, la condition sera évaluée comme vraie.
  3. Ainsi, il imprimera l’instruction à l’intérieur du bloc If. Après cela, le contrôle sortira du bloc et le programme se terminera avec succès.

Relationnel Operajeudi

Le langage C possède six opérateurs relationnels qui peuvent être utilisés pour formuler une expression booléenne permettant de prendre une décision et de tester des conditions, et qui renvoie vrai ou faux :

  • < — moins de
  • <= — inférieur ou égal à
  • > — supérieur à
  • >= — supérieur ou égal à
  • == — égal à
  • != — non égal à

Notez que le test d'égalité (==) est différent de l'opérateur d'affectation (=) car c'est l'un des problèmes les plus courants auxquels un programmeur est confronté en les mélangeant.

Par exemple :

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

Sortie:

 You succeed

Gardez à l’esprit qu’une condition qui donne une valeur non nulle est considérée comme vraie.

Par exemple :

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

Sortie :

There is someone present in the classroom

L'instruction Si-Sinon

Organigramme de l'instruction If-Else en C

L'instruction if-else est une version étendue de l'instruction if. Sa forme générale est la suivante :

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

Dans ce type de construction, si la valeur de l'expression de test est vraie, le bloc d'instructions correspondant sera exécuté. Si sa valeur est fausse, le bloc d'instructions correspondant sera exécuté. Dans tous les cas, après l'exécution, le contrôle sera automatiquement transféré aux instructions situées en dehors du bloc « if ».

Les programmes suivants illustrent l'utilisation de la construction if-else :

Nous allons initialiser une variable avec une certaine valeur et écrire un programme pour déterminer si la valeur est inférieure à dix ou supérieure à dix.

Commençons.

#include<stdio.h>
int main()
{
	int num=19;
	if(num<10)
	{
		printf("The value is less than 10");
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Sortie :

The value is greater than 10

Exemple de sortie d'une instruction if-else en C

  1. Nous avons initialisé une variable avec la valeur 19. Nous devons découvrir si le nombre est supérieur ou inférieur à 10 à l'aide d'un programme 'C'. Pour ce faire, nous avons utilisé la construction if-else.
  2. Ici, nous avons fourni une condition num<10 car nous devons comparer notre valeur avec 10.
  3. Comme vous pouvez le voir, le premier bloc est toujours un vrai bloc, ce qui signifie que si la valeur de l'expression de test est vraie, alors le premier bloc qui est If sera exécuté.
  4. Le deuxième bloc est un bloc else. Ce bloc contient les instructions qui seront exécutées si la valeur de l'expression-test devient fausse. Dans notre programme, la valeur de num est supérieure à dix, donc la condition de test devient fausse et sinon le bloc est exécuté. Ainsi, notre sortie proviendra d’un bloc else qui sera « La valeur est supérieure à 10 ». Après le if-else, le programme se terminera avec un résultat positif.

Dans la programmation « C », nous pouvons utiliser plusieurs constructions if-else les unes dans les autres, appelées imbrication d'instructions if-else.

Expressions conditionnelles

Une autre façon d'exprimer une instruction if-else consiste à utiliser l'opérateur ?:. Dans une expression conditionnelle, l'opérateur ?: n'associe qu'une seule instruction au if et au else.

Par exemple :

#include <stdio.h>
int main() {
  int y;
  int x = 2;
   y = (x >= 6) ?  6 : x;/* This is equivalent to:  if (x >= 5)    y = 5;  else    y = x; */
   printf("y =%d ",y);
  return 0;}

Sortie :

y =2

Déclarations if-else imbriquées

Lorsqu'une série de décisions est requise, un if-else imbriqué est utilisé. L'imbrication signifie utiliser une construction if-else dans une autre.

Écrivons un programme pour illustrer l'utilisation de if-else imbriqué.

#include<stdio.h>
int main()
{
	int num=1;
	if(num<10)
	{
		if(num==1)
		{
			printf("The value is:%d\n",num);
		}
		else
		{
			printf("The value is greater than 1");
		}
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Sortie :

The value is:1

Le programme ci-dessus vérifie si un nombre est inférieur ou supérieur à 10 et imprime le résultat à l'aide d'une construction if-else imbriquée.

Instruction if-else imbriquée en C

  1. Tout d’abord, nous avons déclaré une variable num avec une valeur de 1. Ensuite, nous avons utilisé la construction if-else.
  2. Dans la structure conditionnelle externe, la condition vérifie si un nombre est inférieur à 10. Si la condition est vraie, alors et seulement alors le bloc interne est exécuté. Dans ce cas, la condition est vraie, donc le bloc interne est traité.
  3. Dans le bloc interne, une condition vérifie si notre variable contient la valeur 1. Si la condition est vraie, le bloc « If » est exécuté ; sinon, c’est le bloc « Else » qui est exécuté. Ici, la condition étant vraie, le bloc « If » est exécuté et la valeur est affichée à l’écran.
  4. Le programme ci-dessus affichera la valeur d'une variable et se terminera avec succès.

Essayez de modifier la valeur de variable Observez le comportement du programme.

REMARQUE : Dans les instructions if-else imbriquées, il faut veiller à l’indentation, car plusieurs structures if-else interviennent, ce qui complique la compréhension de chaque élément. Une indentation correcte facilite la lecture du programme.

Déclarations Else-if imbriquées

Échelle de instructions else-if imbriquées en C

Le else-if imbriqué est utilisé lorsque des décisions à trajets multiples sont requises.

La syntaxe générale de la façon dont les échelles sinon-si sont construites dans la programmation « C » est la suivante :

 if (test - expression 1) {
    statement1;
} else if (test - expression 2) {
    Statement2;
} else if (test - expression 3) {
    Statement3;
} else if (test - expression n) {
    Statement n;
} else {
    default;
}
Statement x;

Ce type de structure est appelé « échelle else-if ». Cette chaîne ressemble généralement à une échelle, d'où son nom. Les expressions de test sont évaluées de haut en bas. Lorsqu'une expression de test est vraie, l'instruction associée est exécutée. Lorsque toutes les n expressions de test sont fausses, l'instruction else par défaut est exécutée.

Voyons le fonctionnement réel à l'aide d'un programme.

#include<stdio.h>
int main()
{
	int marks=83;
	if(marks>75){
		printf("First class");
	}
	else if(marks>65){
		printf("Second class");
	}
	else if(marks>55){
		printf("Third class");
	}
	else{
		printf("Fourth class");
	}
	return 0;
}

Sortie :

First class

Le programme ci-dessus imprime la note selon les notes obtenues lors d'un test. Nous avons utilisé la construction d'échelle else-if dans le programme ci-dessus.

  1. Nous avons initialisé une variable avec des marques. Dans la structure en échelle else-if, nous avons fourni diverses conditions.
  2. La valeur des marques variables sera comparée à la première condition puisqu'il est vrai que l'instruction qui lui est associée sera imprimée sur l'écran de sortie.
  3. Si la première condition du test s’avère fausse, elle est alors comparée à la deuxième condition.
  4. Ce processus se poursuivra jusqu'à ce que toutes les expressions soient évaluées ; sinon, le contrôle sortira de la structure « else-if » et l'instruction par défaut sera affichée.

Essayez de modifier la valeur et notez le changement dans la sortie.

FAQ

Une instruction if-else teste toute expression booléenne, y compris les plages et les vérifications relationnelles. interrupteur…boîtier compare une variable à des valeurs constantes fixes et compile souvent en une table de correspondance plus rapide dans de nombreux cas.

Le problème des instructions `else` non appariées réside dans l'ambiguïté quant à l'instruction `if` à laquelle elle appartient lorsque des instructions `if` sont imbriquées sans accolades. En C, une instruction `else` est toujours associée à l'instruction `if` non appariée la plus proche. L'ajout d'accolades lève cette ambiguïté.

Oui. Les opérateurs logiques combinent des conditions : && exige que les deux conditions soient vraies, || exige au moins une condition vraie, et ! inverse le résultat. Par exemple, si (âge > 18 && citoyen) teste deux conditions simultanément dans une seule condition if.

Les accolades sont facultatives lorsque le corps du programme ne contient qu'une seule instruction ; dans ce cas, C n'exécute que la ligne suivante. Pour deux instructions ou plus, les accolades sont obligatoires pour les regrouper. Utiliser systématiquement des accolades est une bonne pratique qui permet d'éviter les erreurs logiques.

L'évaluation en court-circuit s'arrête dès que le résultat est connu. Avec &&, une fausse alerte à gauche ignore l'analyse de l'opérateur de droite. Avec ||, une vraie alerte à gauche ignore l'analyse de l'opérateur de droite. Ceci évite un travail inutile et des opérations dangereuses.

Oui. Une hiérarchie de conditions « sinon si » est évaluée de haut en bas et s'arrête à la première condition vraie. Placer des conditions générales avant des conditions spécifiques peut masquer ces dernières ; il faut donc ordonner les tests du plus spécifique au plus général.

Oui. Les assistants de programmation IA génèrent des blocs conditionnels à partir d'un commentaire, transforment les longues chaînes if-else en structures plus claires et signalent les erreurs potentielles, comme l'utilisation de = au lieu de ==. Testez toujours la logique générée avant de vous y fier.

Copilote GitHub L'outil complète automatiquement les instructions if, else-if et les conditions imbriquées à partir de vos commentaires ou du code environnant. Il suggère des expressions relationnelles et logiques et peut ajouter les accolades manquantes ; toutefois, il est conseillé de vérifier chaque suggestion.

Résumez cet article avec :