TOC

This article is currently in the process of being translated into Vietnamese (~72% done).

Control Structures:

The switch statement

Ta có thể xem câu lệnh switch là một tập các câu lệnh if. Nó là một dãy các khả năng có thể xảy ra, mỗi khả năng đi kèm với một hành động. Ngoài ra ta cũng có thể chỉ định một hành động "mặc định" trong trường hợp tất cả các khả năng đều không trả về đúng. Một câu lệnh switch đơn giản được viết như sau:

int number = 1;
switch(number)
{
    case 0:
Console.WriteLine("The number is zero!");
break;
    case 1:
Console.WriteLine("The number is one!");
break;
}

Ta đặt một "identifier" (một biến hay một biểu thức chẳng hạn) cần kiểm tra sau từ khóa switch, và một dãy các câu lệnh case nêu ra những giá trị cần kiểm tra xem "identifier" có trả về nó không. Sau mỗi trường hợp ta có câu lệnh break. C# yêu cầu mỗi khối lệnh của case đi kèm với câu lệnh break trước khi kết thúc. Nếu bạn đang viết hàm thì bạn có thể dùng return thay cho break nếu muốn.

Ở ví dụ trên, ta dùng một số tự nhiên. Nếu muốn nó có thể là một chuỗi kí tự, hay bất kì một kiểu dữ liệu nào. Ngoài ra, các trường hợp khác nhau có thể chứa lệnh thực thi giống nhau. Ví dụ sau sử dụng dữ liệu người dùng nhập để đưa vào câu lệnh switch:

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
}

In this example, we ask the user a question, and suggest that they enter either yes, no or maybe. We then read the user input, and create a switch statement for it. To help the user, we convert the input to lowercase before we check it against our lowercase strings, so that there is no difference between lowercase and uppercase letters.

Still, the user might make a typo or try writing something completely different, and in that case, no output will be generated by this specific switch statement. Enter the default keyword!

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
    default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}

Nếu không có câu lệnh caase nào trả về "đúng" thì câu lệnh default, nếu có, sẽ được thực thi. Có thể không sử dụng default, như đã thấy ở hai ví dụ đầu tiên.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!