Décisions et branchement (Visual C# Express)
Mise à jour : novembre 2007
Modifier le flux du contrôle dans un programme en réaction à une entrée ou à une valeur calculée est un élément essentiel de tout langage de programmation. C# permet de modifier le flux du contrôle, soit inconditionnellement, en se rendant à un nouvel emplacement dans le code, soit conditionnellement, en exécutant un test.
Notes
Le formulaire le plus simple de création de branches conditionnelles utilise la construction if. Vous pouvez utiliser une clause else avec la construction if, et les constructions if peuvent être imbriquées.
using System;
class Program
{
static void Main()
{
int x = 1;
int y = 1;
if (x == 1)
Console.WriteLine("x == 1");
else
Console.WriteLine("x != 1");
if (x == 1)
{
if (y == 2)
{
Console.WriteLine("x == 1 and y == 2");
}
else
{
Console.WriteLine("x == 1 and y != 2");
}
}
}
}
Remarque : |
---|
Contrairement à C et C++, les instructions if requièrent des valeurs booléennes. Par exemple, il n'est pas permis d'avoir une instruction dont l'évaluation ne donne pas simplement True ou False, tel que (a=10). En C#, 0 ne peut pas être substitué à False et 1 (ou toute autre valeur) à True. |
Les instructions qui suivent les mots clés if et else peuvent être des lignes de code comme illustré dans la première instruction if-else de l'exemple de code précédent, ou un bloc d'instructions entre crochets comme illustré dans la deuxième instruction if-else. Il est permis d'imbriquer des instructions if-else, mais on conseillera en général d'utiliser plutôt une instruction switch.
Une instruction switch peut effectuer plusieurs actions selon la valeur d'une expression donnée. Le code entre l'instruction case et le mot clé break est exécuté si la condition est remplie. Si vous souhaitez que le flux de contrôle continue sur une autre instruction case, utilisez le mot clé goto.
using System;
class Program
{
static void Main()
{
int x = 3;
switch (x)
{
case 1:
Console.WriteLine("x is equal to 1");
break;
case 2:
Console.WriteLine("x is equal to 2");
break;
case 3:
goto default;
default:
Console.WriteLine("x is equal to neither 1 nor 2");
break;
}
}
}
L'expression que l'instruction switch utilise pour déterminer le cas à exécuter doit utiliser des Types de données intégrés (Visual C# Express), tels que int ou string ; vous ne pouvez pas utiliser de types définis par l'utilisateur plus complexes.
En C#, contrairement à Visual Basic, la condition doit être une valeur de constante. Par exemple, il n'est pas permis de comparer l'expression à une plage de valeurs.