Lồng các lệnh switch trong C#



Nó là có thể để có một lệnh switch như là một phần của dãy lệnh trong một lệnh switch ở vòng ngoài. Ngay cả khi hằng số case trong và ngoài lệnh switch chứa các giá trị bình thường, sẽ không có sự xung đột diễn ra ở đây.

Cú pháp

Cú pháp để lồng các lệnh switch trong C# như sau:

switch(biểu_thức) 
{
   case 'A':
   printf("A này là của lệnh switch bên ngoài!" );
   switch(biểu_thức)
   {
      case 'A':
         printf("A này là của lệnh switch bên trong!" );
         break;
      case 'B': /* B của lệnh switch bên trong */
   }
   break;
   case 'B': /* của lệnh switch bên ngoài */
}

Ví dụ

using System;namespace VietJackCsharp
{
    class TestCsharp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Long cac lenh switch trong C#");
            Console.WriteLine("-------------------------------");            int a = 100;
            int b = 200;            switch (a)
            {
                case 100:
                    Console.WriteLine("Dong nay thuoc lenh switch ben ngoai!");
                    switch (b)
                    {
                        case 200:
                            Console.WriteLine("Dong nay thuoc lenh switch ben trong!");
                            break;
                    }
                    break;
            }
            Console.WriteLine("Gia tri chinh xac cua a la: {0}", a);
            Console.WriteLine("Gia tri chinh xac cua b la: {0}", b);
            Console.ReadLine();            Console.ReadKey();
        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Lồng các lệnh Switch trong C#
dieu_khien_luong_trong_csharp.jsp