CHƢƠNG 1– TỔNG QUAN VỀ FRAMEWORK .NET
2.3 Các cấu trúc điều khiển
2.3.2 Cấu trúc chọn
Câu lệnh switch
Khi có quá nhiều điều kiện để chọn thực hiện thì dùng câu lệnh if sẽ rất rối rắm và dài dịng, Các ngơn ngữ lập trình cấp cao đều cung cấp một dạng câu lệnh switch liệt kê các giá trị và chỉ thực hiện các giá trị thích hợp. C# cũng cung cấp câu lệnh nhảy switch có cú pháp sau:
switch (biểu thức điều kiện)
Chƣơng 2 – Ngơn ngữ lập trình c# 29 case <giá trị>: <Các câu lệnh thực hiện> <lệnh nhảy> case <giá trị>: <Các câu lệnh thực hiện> <lệnh nhảy> … [default: <Các câu lệnh thực hiện mặc định>] }
Cũng tƣơng tự nhƣ câu lệnh if, biểu thức để so sánh đƣợc đặt sau từ khóa switch, tuy nhiên giá trị so sánh lại đƣợc đặt sau mỗi các từ khóa case. Giá trị sau từ khóa case là các giá trị hằng số nguyên nhƣ đã đề cập trong phần trƣớc.
Nếu một câu lệnh case đƣợc thích hợp tức là giá trị sau case bằng với giá trị của biểu thức sau switch thì các câu lệnh liên quan đến câu lệnh case này sẽ đƣợc thực thi. Tuy nhiên phải có một câu lệnh nhảy nhƣ break, goto để điều khiển nhảy qua các case khác.Vì nếu khơng có các lệnh nhảy này thì khi đó chƣơng trình sẽ thực
hiện tất cả các case theo sau
Ví dụ:
Chƣơng 2 – Ngơn ngữ lập trình c# 30 switch (Thang) { case 1: Console.WriteLine("Thang gieng"); break;
case 2: Console.WriteLine("Thang Hai"); break;
case 3: Console.WriteLine("Thang Ba"); break;
case 4: Console.WriteLine("Thang Tu"); break;
case 5: Console.WriteLine("Thang Nam"); break;
case 6: Console.WriteLine("Thang Sau"); break;
case 7: Console.WriteLine("Thang Bay"); break;
case 8: Console.WriteLine("Thang Tam"); break;
case 9: Console.WriteLine("Thang Chin"); break;
Chƣơng 2 – Ngơn ngữ lập trình c#
31 Muoi"); break;
case 11: Console.WriteLine("Thang Muoi Mot"); break;
case 12: Console.WriteLine("Thang Chap"); break;
default:
Console.WriteLine("Nhap thang sai");
break; } Kết quả: Thang Tam Ví dụ 2: int Thang = 8; switch (Thang) {
case 1: Console.WriteLine("Thang gieng"); break;
Chƣơng 2 – Ngơn ngữ lập trình c#
32 break;
case 3: Console.WriteLine("Thang Ba"); break;
case 4: Console.WriteLine("Thang Tu"); break;
case 5: Console.WriteLine("Thang Nam"); break;
case 6: Console.WriteLine("Thang Sau"); break;
case 7: Console.WriteLine("Thang Bay"); break;
case 8: Console.WriteLine("Thang Tam"); goto case 2;
case 9: Console.WriteLine("Thang Chin"); break;
case 10: Console.WriteLine("Thang Muoi"); break;
case 11: Console.WriteLine("Thang Muoi Mot"); break;
case 12: Console.WriteLine("Thang Chap"); break;
Chƣơng 2 – Ngơn ngữ lập trình c#
33 default:
Console.WriteLine("Nhap thang sai");
break; } Kết quả: Thang Tam Thang Hai Chú ý:
- Khi thực hiện xong các câu lệnh của một trƣờng hợp nếu muốn thực hiện một trƣờng hợp case khác thì ta dùng câu lệnh nhảy goto với nhãn của
trƣờng hợp đó: goto case <giá trị>
- Khi gặp lệnh thoát break thì chƣơng trình thốt khỏi switch và thực hiện
lệnh tiếp sau khối switch đó.
- Nếu khơng có trƣờng hợp nào thích hợp và trong câu lệnh switch 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.