Page d'Accueil

Enoncés conditionnels : if

 

Introduction

Un énoncé conditionnel est une expression qui produit un résultat vrai ou faux. Vous pouvez utiliser le résultat comme souhaitez. Pour créer l'expression, vous utilisez les opérateurs booléens que nous avons étudiés dans la leçon précédente. Dans la leçon précédente, nous avons vu seulement comment effectuer les opérations et comment obtenir les résultats, et pas comment les utiliser. Pour utiliser le résultat d'une opération booléenne, le langage de programmation C# fournit quelques opérateurs conditionnels spécifiques.

 

Étude pratiqueÉtude pratique : Présentation des expressions conditionnelles

  1. Commencez Microsoft Visual C# et créez une application de console appelée ElectronicStore2
  2. Pour créer une nouvelle classe, sur le menu principal, cliquez projet. Ajouter la classe…
  3. Placez le nom de la classe StoreItem et cliquez Ajouter
  4. Changez le fichier StoreItem.cs comme suit :
     
    using System;
    
    namespace ElectronicStore2
    {
        public enum ItemsCategories
        {
            Unknown,
            CablesAndConnectors,
            CellPhonesAndAccessories,
            Headphones,
            DigitalCameras,
            PDAsAndAccessories,
            TelephonesAndAccessories,
            TVsAndVideos,
            SurgeProtectors,
            Instructional
        }
    
        class StoreItem
        {
            public long ItemNumber;
            public ItemsCategories Category;
            public string Make;
            public string Model;
            public string Name;
            public decimal UnitPrice;
    
            // An item whose characteristics are not (yet) defined
            public StoreItem()
            {
                ItemNumber = 0;
                Category = ItemsCategories.Unknown;
                Make = "Unknown";
                Model = "Unspecified";
                Name = "N/A";
                UnitPrice = 0.00M;
            }
            // An item that is known by its make, model, and unit price
            public StoreItem(long itmNbr, String make,
                       String model, decimal price)
            {
                ItemNumber = itmNbr;
                Category = ItemsCategories.Unknown;
                Make = make;
                Model = model;
                Name = "N/A";
                UnitPrice = price;
            }
            // An item that is known by its name and unit price
            public StoreItem(long itmNbr, String name, decimal price)
            {
                ItemNumber = itmNbr;
                Category = ItemsCategories.Unknown;
                Make = "Unknown";
                Model = "Unspecified";
                Name = name;
                UnitPrice = price;
            }
            // An item completely defined
            public StoreItem(long itmNbr, ItemsCategories category,
                          String make, String model, decimal price)
            {
                ItemNumber = itmNbr;
                Category = category;
                Make = make;
                Model = model;
                UnitPrice = price;
            }
        }
    }
  5. Sauvegardez le fichier

La Condition if

Considérez le programme suivant :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    TownHouse,
    Condominium
}
class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        Console.WriteLine("\nDesired House Type: {0}", type);
    }
}

Voici un exemple d'exécution du programme:

Enter the type of house you want to purchase
1. Single Family
2. TownHouse
3. Condominium
You Choice? 3

Desired House Type: Unknown
Press any key to continue . . .

Pour vérifier si une expression est vraie et utiliser son résultat booléen, vous pouvez utiliser l'opérateur if. Sa formule est :

if(Condition) Conclusion;

La condition peut être le type d'opération booléenne que nous avons étudiée dans la leçon précédente. C'est-à-dire, elle peut avoir la formule suivante :

Operand1 BooleanOperator Operand2

Si la condition produit un résultat vrai, alors le compilateur exécute l'énoncé. Si l'énoncé à exécuter est court, vous pouvez l'écrire sur la même ligne avec la condition qui est vérifiée. Voici un exemple :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    TownHouse,
    Condominium
}

class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. Townhouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1) type = HouseType.SingleFamily;

        Console.WriteLine("\nDesired House Type: {0}", type);
    }
}

Voici un exemple d'exécution du programme :

Enter the type of house you want to purchase
1. Single Family
2. Townhouse
3. Condominium
You Choice? 1

Desired House Type: SingleFamily
Press any key to continue . . .

Si l'énoncé est trop long, vous pouvez l'écrire sur une ligne différente que la condition if. Voici un exemple :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    TownHouse,
    Condominium
}

class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1)
            type = HouseType.SingleFamily;

        Console.WriteLine("\nDesired House Type: {0}", type);
    }
}

Vous pouvez également écrire l'énoncé sur sa propre ligne même si l'énoncé est assez court pour s'adapter sur la même ligne que la condition.

Bien que (simple) l'énoncé if est utilisé pour vérifier une condition, il peut mener à exécuter des énoncés multiples et dépendants. Si c'est le cas, joindre le groupe des énoncés entre accolade ouverte « {« et une accolade fermée « } ». Voici un exemple :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    TownHouse,
    Condominium
}

class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1)
        {
            type = HouseType.SingleFamily;
            Console.WriteLine("\nDesired House Type: {0}", type);
        }
    }
}

Si vous omettez les accolades, seul l'énoncé qui suit immédiatement la condition serait exécuté.

Exactement tel que vous pouvez écrire une condition if, vous pouvez écrire plus d'une. Voici les exemples:

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    Townhouse,
    Condominium
}

class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1)
            type = HouseType.SingleFamily;
        if (choice == 2)
            type = HouseType.Townhouse;
        if (choice == 3)
            type = HouseType.Condominium;

        Console.WriteLine("\nDesired House Type: {0}", type);
    }
}

Voici un exemple d'exécution du programme :

Enter the type of house you want to purchase
1. Single Family
2. TownHouse
3. Condominium
You Choice? 3

Desired House Type: Condominium
Press any key to continue . . .

Étude pratiqueÉtude pratique : utiliser la condition if simple  

  1. Accédez au fichier Program.cs et le changer comme suit :
     
    using System;
    
    namespace ElectronicStore2
    {
        class Program
        {
            static StoreItem CreateStoreItem()
            {
                StoreItem sItem = new StoreItem();
                int category;
    
            Console.WriteLine("To create a store item, enter its information");
                Console.Write("Item Number: ");
                sItem.ItemNumber = long.Parse(Console.ReadLine());
                Console.WriteLine("Category");
                Console.WriteLine("1.  Unknown/Miscellaneous");
                Console.WriteLine("2.  Cables and Connectors");
                Console.WriteLine("3.  Cell Phones and Accessories");
                Console.WriteLine("4.  Headphones");
                Console.WriteLine("5.  Digital Cameras");
                Console.WriteLine("6.  PDAs and Accessories");
                Console.WriteLine("7.  Telephones and Accessories");
                Console.WriteLine("8.  TVs and Videos - Plasma / LCD");
                Console.WriteLine("9.  Surge Protector");
                Console.WriteLine(
    	"10. Instructional and Tutorials (VHS & DVD)TVs and Videos");
                Console.Write("Your Choice? ");
                category = int.Parse(Console.ReadLine());
    
                if (category == 1)
                    sItem.Category = ItemsCategories.Unknown;
                if (category == 2)
                    sItem.Category = ItemsCategories.CablesAndConnectors;
                if (category == 3)
                    sItem.Category = ItemsCategories.CellPhonesAndAccessories;
                if (category == 4)
                    sItem.Category = ItemsCategories.Headphones;
                if (category == 5)
                    sItem.Category = ItemsCategories.DigitalCameras;
                if (category == 6)
                    sItem.Category = ItemsCategories.PDAsAndAccessories;
                if (category == 7)
                    sItem.Category = ItemsCategories.TelephonesAndAccessories;
                if (category == 8)
                    sItem.Category = ItemsCategories.TVsAndVideos;
                if (category == 9)
                    sItem.Category = ItemsCategories.SurgeProtectors;
                if (category == 10)
                    sItem.Category = ItemsCategories.Instructional;
    
                Console.Write("Make:        ");
                sItem.Make = Console.ReadLine();
                Console.Write("Model:       ");
                sItem.Model = Console.ReadLine();
                Console.Write("Unit Price:  ");
                sItem.UnitPrice = decimal.Parse(Console.ReadLine());
    
                return sItem;
            }
    
            static void DescribeStoreItem(StoreItem item)
            {
                Console.WriteLine("Store Item Description");
                Console.WriteLine("Item Number:   {0}", item.ItemNumber);
                Console.WriteLine("Category:      {0}", item.Category);
                Console.WriteLine("Make:          {0}", item.Make);
                Console.WriteLine("Model:         {0}", item.Model);
                Console.WriteLine("Unit Price:    {0:C}", item.UnitPrice);
            }
    
            static void Main()
            {
                string strTitle1 = "=-= Nearson Electonics =-=";
                string strTitle2 = "******* Store Items ******";
    
                StoreItem saleItem = CreateStoreItem();
    
                Console.WriteLine("");
                DescribeStoreItem(saleItem);
            }
        }
    }
  2. Exécutez l'application pour voir le résultat. Voici un exemple :
     
    To create a store item, enter its information
    Item Number: 868264
    Category
    1.  Unknown/Miscellaneous
    2.  Cables and Connectors
    3.  Cell Phones and Accessories
    4.  Headphones
    5.  Digital Cameras
    6.  PDAs and Accessories
    7.  Telephones and Accessories
    8.  TVs and Videos - Plasma / LCD
    9.  Surge Protector
    10. Instructional and Tutorials (VHS & DVD)TVs and Videos
    Your Choice? 1
    Make:        Altec Lansing
    Model:       VS4221 Computer Speakers
    Unit Price:  85.95
    
    Store Item Description
    Item Number:   868264
    Category:      Unknown
    Make:          Altec Lansing
    Model:         VS4221 Computer Speakers
    Unit Price:    $85.95
    Press any key to continue . . .
    Haut Parleurs
  3. Fermez la fenêtre DOS

if...else

Voici un exemple de ce que nous avons appris dans la section précédente :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    Townhouse,
    Condominium
}
Maison
class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1)
            type = HouseType.SingleFamily;
        if (choice == 2)
            type = HouseType.Townhouse;
        if (choice == 3)
            type = HouseType.Condominium;

        Console.WriteLine("\nDesired House Type: {0}", type);

        if (type == HouseType.SingleFamily)
            Console.WriteLine("\nDesired House Matched");
    }
}

Si vous utilisez la condition if pour effectuer une opération et si le résultat est vrai, nous avons vu que vous pourriez exécuter ll'énoncé. Comme nous avons vu dans la section précédente, n'importe quel autre résultat serait ignoré. Pour adresser une alternative à condition if, vous pouvez utiliser la condition else. La formule à suivre est :

if(Condition)
    Statement1;
else
    Statement2;

De nouveau, la condition peut être une opération booléenne comme ceux que nous avons étudiés dans la leçon précédente. Si la condition est vraie, alors le compilateur exécuterait L'énoncé1. Si la condition est fausse, alors le compilateur exécuterait L'énoncé2. Voici un exemple :

using System;

public enum HouseType
{
    Unknown,
    SingleFamily,
    Townhouse,
    Condominium
}

class Program
{
    static void Main()
    {
        HouseType type = HouseType.Unknown;
        int choice;

        Console.WriteLine("Enter the type of house you want to purchase");
        Console.WriteLine("1. Single Family");
        Console.WriteLine("2. TownHouse");
        Console.WriteLine("3. Condominium");
        Console.Write("You Choice? ");
        choice = int.Parse(Console.ReadLine());

        if (choice == 1)
            type = HouseType.SingleFamily;
        if (choice == 2)
            type = HouseType.Townhouse;
        if (choice == 3)
            type = HouseType.Condominium;

        Console.WriteLine("\nDesired House Type: {0}", type);

        if (type == HouseType.SingleFamily)
            Console.WriteLine("Desired House Matched");
        else
            Console.WriteLine("No House Desired");
    }
}

Voici un exemple d'exécution du programme :

Enter the type of house you want to purchase
1. Single Family
2. Townhouse
3. Condominium
You Choice? 1

Desired House Type: SingleFamily
Desired House Matched
Press any key to continue . . .

Voici un autre exemple d'exécution du programme :

Enter the type of house you want to purchase
1. Single Family
2. Townhouse
3. Condominium
You Choice? 2

Desired House Type: Townhouse
No House Desired
Press any key to continue . . .

Étude pratiqueÉtude pratique : utiliser la condition if… else 

  1. Accédez au fichier Program.cs et, pour utiliser la condition if… else, changez le fichier comme suit :
     
    using System;
    
    namespace ElectronicStore2
    {
        class Program
        {
            static StoreItem CreateStoreItem()
            {
                StoreItem sItem = new StoreItem();
                int category;
                decimal itemPrice = 0M;
    
                Console.WriteLine(
    		"To create a store item, enter its information");
                Console.Write("Item Number: ");
                sItem.ItemNumber = long.Parse(Console.ReadLine());
                Console.WriteLine("Category");
                Console.WriteLine("1.  Unknown/Miscellaneous");
                Console.WriteLine("2.  Cables and Connectors");
                Console.WriteLine("3.  Cell Phones and Accessories");
                Console.WriteLine("4.  Headphones");
                Console.WriteLine("5.  Digital Cameras");
                Console.WriteLine("6.  PDAs and Accessories");
                Console.WriteLine("7.  Telephones and Accessories");
                Console.WriteLine("8.  TVs and Videos - Plasma / LCD");
                Console.WriteLine("9.  Surge Protector");
                Console.WriteLine(
    	"10. Instructional and Tutorials (VHS & DVD)TVs and Videos");
                Console.Write("Your Choice? ");
                category = int.Parse(Console.ReadLine());
    
                if (category == 1)
                    sItem.Category = ItemsCategories.Unknown;
                if (category == 2)
                    sItem.Category = ItemsCategories.CablesAndConnectors;
                if (category == 3)
                    sItem.Category = ItemsCategories.CellPhonesAndAccessories;
                if (category == 4)
                    sItem.Category = ItemsCategories.Headphones;
                if (category == 5)
                    sItem.Category = ItemsCategories.DigitalCameras;
                if (category == 6)
                    sItem.Category = ItemsCategories.PDAsAndAccessories;
                if (category == 7)
                    sItem.Category = ItemsCategories.TelephonesAndAccessories;
                if (category == 8)
                    sItem.Category = ItemsCategories.TVsAndVideos;
                if (category == 9)
                    sItem.Category = ItemsCategories.SurgeProtectors;
                if (category == 10)
                    sItem.Category = ItemsCategories.Instructional;
    
                Console.Write("Make:        ");
                sItem.Make = Console.ReadLine();
                Console.Write("Model:       ");
                sItem.Model = Console.ReadLine();
                Console.Write("Unit Price:  ");
                itemPrice  = decimal.Parse(Console.ReadLine());
                if( itemPrice <= 0 )
                    sItem.UnitPrice = 0.00M;
                else
                    sItem.UnitPrice = itemPrice;
    
                return sItem;
            }
    
            static string GetItemCategory(ItemsCategories cat)
            {
                string category = "Unknown";
    
                if (cat == ItemsCategories.CablesAndConnectors)
                    category = "Cables & Connectors";
                if (cat == ItemsCategories.CellPhonesAndAccessories)
                    category = "Cell Phones & Accessories";
                if (cat == ItemsCategories.Headphones)
                    category = "Headphones";
                if (cat == ItemsCategories.DigitalCameras)
                    category = "Digital Cameras";
                if (cat == ItemsCategories.PDAsAndAccessories)
                    category = "PDAs & Accessories";
                if (cat == ItemsCategories.TelephonesAndAccessories)
                    category = "Telephones & Accessories";
                if (cat == ItemsCategories.TVsAndVideos)
                    category = "TVs & Videos";
                if (cat == ItemsCategories.SurgeProtectors)
                    category = "Surge Protectors";
                if (cat == ItemsCategories.Instructional)
                    category = "Instructional";
    
                return category;
            }
    
            static void DescribeStoreItem(StoreItem item)
            {
                string strCategory = GetItemCategory(item.Category);
    
                Console.WriteLine("Store Item Description");
                Console.WriteLine("Item Number:   {0}", item.ItemNumber);
                Console.WriteLine("Category:      {0}", strCategory);
                Console.WriteLine("Make           {0}", item.Make);
                Console.WriteLine("Model:         {0}", item.Model);
                Console.WriteLine("Unit Price:    {0:C}", item.UnitPrice);
            }
    
            static void Main()
            {
                string strTitle1 = "=-= Nearson Electronics =-=";
                string strTitle2 = "******* Store Items ******";
    
                Console.WriteLine(strTitle1);
                Console.WriteLine(strTitle2);
                StoreItem saleItem = CreateStoreItem();
                Console.WriteLine("");
    
                Console.WriteLine(strTitle1);
                Console.WriteLine(strTitle2);
                DescribeStoreItem(saleItem);
                Console.WriteLine("");
            }
        }
    }
  2. Exécutez l'application pour l'examiner. Voici un exemple :
     
    =-= Nearson Electronics =-=
    ******* Store Items ******
    To create a store item, enter its information
    Item Number: 937494
    Category
    1.  Unknown/Miscellaneous
    2.  Cables and Connectors
    3.  Cell Phones and Accessories
    4.  Headphones
    5.  Digital Cameras
    6.  PDAs and Accessories
    7.  Telephones and Accessories
    8.  TVs and Videos - Plasma / LCD
    9.  Surge Protector
    10. Instructional and Tutorials (VHS & DVD)TVs and Videos
    Your Choice? 5
    Make:        Canon
    Model:       EOS 30D
    Unit Price:  1395.95
    
    =-= Nearson Electronics =-=
    ******* Store Items ******
    Store Item Description
    Item Number:   937494
    Category:      Digital Cameras
    Make           Canon
    Model:         EOS 30D
    Unit Price:    $1,395.95
    
    Press any key to continue . . .
    Appareil Photo
  3. Fermez la fenêtre DOS
 
 

Précédent Copyright © 2007-2008, Yevol Suivant