if-else (référence C#)if-else (C# Reference)

Une instruction if identifie l’instruction à exécuter en fonction de la valeur d’une expression Boolean .An if statement identifies which statement to run based on the value of a Boolean expression. Dans l’exemple suivant, la variable Boolean result est définie sur true puis archivé dans l’instruction if .In the following example, the Boolean variable result is set to true and then checked in the if statement. Le résultat est The condition is true.The output is The condition is true.

bool condition = true;

if (condition)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

Vous pouvez exécuter les exemples de cette rubrique en les plaçant dans la méthode Main d’une application console.You can run the examples in this topic by placing them in the Main method of a console app.

En C#, une instruction if peut prendre deux formes, comme le montre l’exemple suivant.An if statement in C# can take two forms, as the following example shows.

// if-else statement  
if (condition)  
{  
    then-statement;  
}  
else  
{  
    else-statement;  
}  
// Next statement in the program.  

// if statement without an else  
if (condition)  
{  
    then-statement;  
}  
// Next statement in the program.  

Dans une instruction if-else , si condition a la valeur true, then-statement s’exécute.In an if-else statement, if condition evaluates to true, the then-statement runs. Si condition a la valeur false, else-statement s’exécute.If condition is false, the else-statement runs. Sachant que condition ne peut pas avoir simultanément les valeurs true et false, then-statement et else-statement d’une instruction if-else ne peuvent jamais s’exécuter.Because condition can’t be simultaneously true and false, the then-statement and the else-statement of an if-else statement can never both run. Une fois que then-statement ou else-statement s’est exécuté, le contrôle est transféré à l’instruction suivante après l’instruction if .After the then-statement or the else-statement runs, control is transferred to the next statement after the if statement.

Dans une instruction if qui n’inclut pas d’instruction else , si condition a la valeur true, then-statement s’exécute.In an if statement that doesn’t include an else statement, if condition is true, the then-statement runs. Si condition a la valeur false, le contrôle est transféré à l’instruction suivante après l’instruction if .If condition is false, control is transferred to the next statement after the if statement.

then-statement et else-statement peuvent tous deux être constitués d’une ou plusieurs instructions placées entre accolades ({}).Both the then-statement and the else-statement can consist of a single statement or multiple statements that are enclosed in braces ({}). Pour une seule instruction, les accolades sont facultatives, mais recommandées.For a single statement, the braces are optional but recommended.

La ou les instructions contenues dans then-statement et else-statement peuvent être de n’importe quel type, y compris une autre instruction if imbriquée à l’intérieur de l’instruction if d’origine.The statement or statements in the then-statement and the else-statement can be of any kind, including another if statement nested inside the original if statement. Dans les instructions if imbriquées, chaque clause else appartient à la dernière instruction if qui n’a pas d’instruction elsecorrespondante.In nested if statements, each else clause belongs to the last if that doesn’t have a corresponding else. Dans l’exemple suivant, Result1 s’affiche si m > 10 et n > 20 ont tous deux la valeur true.In the following example, Result1 appears if both m > 10 and n > 20 evaluate to true. Si m > 10 a la valeur true, mais que n > 20 a la valeur false, Result2 s’affiche.If m > 10 is true but n > 20 is false, Result2 appears.

// Try with m = 12 and then with m = 8.
int m = 12;
int n = 18;

if (m > 10)
    if (n > 20)
    {
        Console.WriteLine("Result1");
    }
    else
    {
        Console.WriteLine("Result2");
    }

Si vous préférez que Result2 s’affiche quand (m > 10) a la valeur false, vous pouvez spécifier cette association au moyen d’accolades pour établir le début et la fin de l’instruction if imbriquée, comme le montre l’exemple suivant.If, instead, you want Result2 to appear when (m > 10) is false, you can specify that association by using braces to establish the start and end of the nested if statement, as the following example shows.

// Try with m = 12 and then with m = 8.
if (m > 10)
{
    if (n > 20)
        Console.WriteLine("Result1");
}
else
{
    Console.WriteLine("Result2");
}

Result2 s’affiche si la condition (m > 10) a la valeur false.Result2 appears if the condition (m > 10) evaluates to false.

ExempleExample

Dans l’exemple suivant, vous entrez un caractère au clavier et le programme utilise une instruction if imbriquée pour déterminer si le caractère d’entrée est un caractère alphabétique.In the following example, you enter a character from the keyboard, and the program uses a nested if statement to determine whether the input character is an alphabetic character. Si le caractère d’entrée est un caractère alphabétique, le programme vérifie si c’est une minuscule ou une majuscule.If the input character is an alphabetic character, the program checks whether the input character is lowercase or uppercase. Un message s’affiche dans chaque cas.A message appears for each case.

Console.Write("Enter a character: ");
char c = (char)Console.Read();
if (Char.IsLetter(c))
{
    if (Char.IsLower(c))
    {
        Console.WriteLine("The character is lowercase.");
    }
    else
    {
        Console.WriteLine("The character is uppercase.");
    }
}
else
{
    Console.WriteLine("The character isn't an alphabetic character.");
}

//Sample Output:

//Enter a character: 2
//The character isn't an alphabetic character.

//Enter a character: A
//The character is uppercase.

//Enter a character: h
//The character is lowercase.

ExempleExample

Vous pouvez aussi imbriquer une instruction if à l’intérieur d’un bloc « else », comme le montre l’extrait de code suivant.You also can nest an if statement inside an else block, as the following partial code shows. L’exemple imbrique des instructions if à l’intérieur de deux blocs « else » et d’un bloc « then ».The example nests if statements inside two else blocks and one then block. Les commentaires précisent les conditions qui sont vraies (true) et celles qui sont fausses (false) dans chaque bloc.The comments specify which conditions are true or false in each block.

// Change the values of these variables to test the results.
bool Condition1 = true;
bool Condition2 = true;
bool Condition3 = true;
bool Condition4 = true;

if (Condition1)
{
    // Condition1 is true.
}
else if (Condition2)
{
    // Condition1 is false and Condition2 is true.
}
else if (Condition3)
{
    if (Condition4)
    {
        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
    }
    else
    {
        // Condition1, Condition2, and Condition4 are false. Condition3 is true.
    }
}
else
{
    // Condition1, Condition2, and Condition3 are false.
}

ExempleExample

L’exemple suivant détermine si un caractère d’entrée est une lettre minuscule, une lettre majuscule ou un nombre.The following example determines whether an input character is a lowercase letter, an uppercase letter, or a number. Si ces trois conditions ont la valeur false, le caractère n’est pas un caractère alphanumérique.If all three conditions are false, the character isn’t an alphanumeric character. L’exemple affiche un message dans chaque cas.The example displays a message for each case.

Console.Write("Enter a character: ");
char ch = (char)Console.Read();

if (Char.IsUpper(ch))
{
    Console.WriteLine("The character is an uppercase letter.");
}
else if (Char.IsLower(ch))
{
    Console.WriteLine("The character is a lowercase letter.");
}
else if (Char.IsDigit(ch))
{
    Console.WriteLine("The character is a number.");
}
else
{
    Console.WriteLine("The character is not alphanumeric.");
}

//Sample Input and Output:
//Enter a character: E
//The character is an uppercase letter.

//Enter a character: e
//The character is a lowercase letter.

//Enter a character: 4
//The character is a number.

//Enter a character: =
//The character is not alphanumeric.

De la même manière que le bloc « else » ou le bloc « then » peuvent contenir n’importe quelle instruction valide, vous pouvez utiliser n’importe quelle expression booléenne valide pour la condition.Just as a statement in the else block or the then block can be any valid statement, you can use any valid Boolean expression for the condition. Vous pouvez utiliser des opérateurs logiques tels que &&, &, ||, | et !You can use logical operators such as &&, &, ||, | and ! pour former des conditions composées.to make compound conditions. Le code suivant présente des exemples.The following code shows examples.

// NOT  
bool result = true;  
if (!result)  
{  
    Console.WriteLine("The condition is true (result is false).");  
}  
else  
{  
    Console.WriteLine("The condition is false (result is true).");  
}  

// Short-circuit AND  
int m = 9;  
int n = 7;  
int p = 5;  
if (m >= n && m >= p)  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// AND and NOT  
if (m >= n && !(p > m))  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// Short-circuit OR  
if (m > n || m > p)  
{  
    Console.WriteLine("m isn't the smallest.");  
}  

// NOT and OR  
m = 4;  
if (!(m >= n || m >= p))  
{  
    Console.WriteLine("Now m is the smallest.");  
}  
// Output:  
// The condition is false (result is true).  
// Nothing is larger than m.  
// Nothing is larger than m.  
// m isn't the smallest.  
// Now m is the smallest.  

Spécification du langage C#C# Language Specification

Pour plus d'informations, voir la spécification du langage C#.For more information, see the C# Language Specification. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.The language specification is the definitive source for C# syntax and usage.

Voir aussiSee Also

Référence C#C# Reference
Guide de programmation C#C# Programming Guide
Mots clés C#C# Keywords
?, opérateur?: Operator
if-else, instruction (C++)if-else Statement (C++)
switchswitch