if-else (référence C#)
Une instruction d' if qui identifie l'instruction à exécuter en fonction de la valeur d'une expression d' Boolean . Dans l'exemple suivant, la variable result Boolean a la valeur true, avant d'être vérifiée dans l'instruction if. Le résultat est 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 définissant dans la méthode d' Main d'une application console.
Une instruction d' if en c peut prendre deux formes, comme indiqué dans l'exemple suivant.
// 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 d' if-else, si condition valeur true, then-statement s'exécute. Si condition a la valeur false, else-statement s'exécute. Étant donné qu' condition ne peut pas être simultanément la valeur true et false, then-statement et else-statement d'une instruction d' if-else ne peuvent jamais les deux exécution. Après then-statement ou les opérations d' else-statement, le contrôle est transféré à l'instruction située après l'instruction d' if .
Dans une instruction d' if qui n'inclut pas d'instruction d' else, si condition est true, then-statement s'exécute. Si condition a la valeur false, le contrôle est transféré à l'instruction située après l'instruction d' if .
then-statement et else-statement peuvent se composer d'une instruction unique ou plusieurs instructions qui sont placés entre accolades ({}). Pour une seule instruction, l'accolade est facultative mais recommandée.
L'instruction ou les instructions dans then-statement et else-statement peut être de tout type, y compris une autre instruction d' if imbriquée à l'intérieur de l'instruction d'origine d' if . Dans les instructions imbriquées d' if, chaque clause d' else appartient au dernier if qui n'a pas elsecorrespondant. Dans l'exemple suivant, Result1 apparaît si m > 10 et n > 20 valeur true. Si m > 10 est vrai mais n > 20 a la valeur false, Result2 s'affiche.
// 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, au lieu de cela, vous souhaitez Result2 apparaissent lorsque (m > 10) a la valeur false, vous pouvez spécifier cette association à l'aide de les accolades pour générer le début et la fin de l'instruction imbriquée d' if, comme indiqué dans l'exemple suivant.
// Try with m = 12 and then with m = 8.
if (m > 10)
{
if (n > 20)
Console.WriteLine("Result1");
}
else
{
Console.WriteLine("Result2");
}
Result2 apparaît si la condition (m > 10) a la valeur false.
Exemple
Dans l'exemple suivant, vous entrez un caractère du clavier, et le programme utilise une instruction imbriquée d' if pour déterminer si le caractère d'entrée est un caractère alphabétique. Si le caractère d'entrée est une lettre, le programme si le caractère d'entrée est en majuscules ou en minuscules. Un message s'affiche pour chaque cas.
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.
Vous pouvez également imbriquer une instruction d' if à l'intérieur d'un bloc d'autres, comme indiqué dans le code partiel suivant. Les instructions d' if d'exemple imbrique d'à l'intérieur de deux blocs d'autre et d'un se bloquent sur. Les commentaires spécifient quelles conditions sont remplies ou false dans chaque bloc.
// 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.
}
L'exemple suivant détermine si un caractère d'entrée est une minuscule, une majuscule, ou un nombre. Si les trois conditions a la valeur false, le caractère n'est pas un caractère alphanumérique. L'exemple affiche un message pour chaque cas.
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.
Comme une instruction dans le bloc d'autre ou le bloc puis peut être une instruction valide, vous pouvez utiliser n'importe quelle expression booléenne valide pour la condition. Vous pouvez utiliser des opérateurs logiques tels qu' &&, et, ||, |et ! pour effectuer des conditions composites. Le code suivant montre des exemples.
// 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#
Pour plus d'informations, voir la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.