XII: Cấu trúc rẽ nhánh switch - case trong C#

Ngày đăng: 2023-05-01 06:36:37

 

Mục lục

1. Cú pháp rẽ nhánh switch - case 

Cấu trúc rẽ nhánh switch - case thường sử dụng để thay thế cấu trúc if - else khi mà có quá nhiều phương án có thể xảy ra, ví dụ như nhập vào điểm của một học sinh và cho biết học lực của học sinh đó. Giả sử chúng ta có 5 loại học lực đó là: yếu, trung bình, khá, giỏi, xuất sắc. Vậy điều này có nghĩa là chúng ta sẽ có 5 câu lệnh if đơn giản hoặc là nhiều câu lệnh if - else lồng vào nhau. Điều này gây nên độ phức tạp, rối ren và dài dòng của một chương trình. Vậy ở đây chúng ta có thể dùng câu lệnh switch - case để khắc phục tình trạng này.

Cú pháp của một lệnh switch - case như sau:

 

switch (biểu thức điều kiện)

{

case <giá trị>:

    <câu lệnh thực hiện>

    <lệnh nhảy>

[default:

    <các câu lệnh được thực hiện mặc định> ]

}

 

Vậy lệnh switch - case hoạt động như thế nào ? Các bạn hãy quan sát sơ đồ sau:

Dạng 1 là cấu trúc switch - case có sử dụng từ khóa default, còn dạng 2 thì không.

Khi gặp lệnh thoát break thì chương trình thoát khỏi switch - case và thực hiện lệnh tiếp sau khối switch - case đó.

Nếu không có trường hợp nào thích hợp và trong câu lệnh switch - case có dùng câu lệnh defalut thì các câu lệnh của trường hợp default sẽ được thực hiện. Ta có thể dùng default để cảnh báo một lỗi hay xử lý một trường hợp ngoài tất cả các trường hợp case trong switch.

Khi sử dụng switch - case có khả năng trả về một giá trị cho nhiều trường hợp.

2. Ví dụ đơn giản về switch - case 

Ví dụ sau sẽ minh họa về việc sử dụng câu lệnh switch - case:

Hãy nhập một trong ba màu: red, yellow, pink từ bàn phím sau đó xuất ra màng hình màu sắc yêu thích của bạn, nếu không có một trong ba màu trên thì xuất ra màn hình màu bạn thích không phải là đỏ, vàng và hồng.

Ví dụ

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace th

{

    class th

    {

        static void Main(string[] args)

        {

            Console.WriteLine("\nnhap vao mau sac yeu thich cua ban !!!");

            string color = Console.ReadLine();

            switch (color)

            {

                case "red":

                    Console.WriteLine("ban thich mau do");

                    break;

                case "yellow":

                    Console.WriteLine("ban thich mau vang");

                    break;

                case "pink":

                    Console.WriteLine("ban thic mau hong");

                    break;

                default:

           Console.WriteLine("mau ban thich khong phai la mau do, mau vang va mau hong");

                    break;

            }

            Console.WriteLine("\nthuanhoaonline chuc ban hoc tot !!!");

            Console.ReadKey();

        }

    }

}

 

Khi biên dịch sẽ cho kết quả:

Khi bạn nhập vào blue thì kết quả sẽ là:

  • Khi chúng ta nhập vào "yellow" thì tương ứng với case "yellow" nên đoạn lệnh trong đó case được thực thi và xuất ra màn hình "ban thich mau vang".
  • Khi chúng ta nhập vào blue thì ta thấy chả có cái case "blue" nào cả, nên khi đó nó sẽ tự động chạy xuống defaul và đoạn lệnh sau defaul đó được thực thi.

Ví dụ về một giá trị trả về cho nhiều trường hợp trong switch - case:

Nhập vào tháng xuất ra màn hình nó là mùa xuân, hạ, thu hoặc đông. Tháng phải bé hơn 12.

 

Ví dụ:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace th

{

    class th

    {

        static void Main(string[] args)

        {

            Console.WriteLine("nhap vao thang can kiem tra");

            int x = Convert.ToInt32(Console.ReadLine());

            switch (x)

            {

                case 1:

                case 2:

                case 3:

                    Console.WriteLine("thang {0} la mua xuan", x);

                    break;

                case 4:

                case 5:

                case 6:

                    Console.WriteLine("thang {0} la mua ha", x);

                    break;

                case 7:

                case 8:

                case 9:

                    Console.WriteLine("thang {0} la mua thu", x);

                    break;

                case 10:

                case 11:

                case 12:

                    Console.WriteLine("thang {0} la mua dong", x);

                    break;

                default:

                    Console.WriteLine("thang ban nhap khong hop le");

                    break;

            }

            Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");

            Console.ReadKey();

        }

    }

}

 

Ví dụ khi ta nhập vào tháng 4:

Ví dụ nhập vào số tháng lớn hơn 12:

 

Về bài trước...

                                  Bài tiếp theo...


Tài liệu lập trình C#

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

12308