Xem thêm

Cấu trúc rẽ nhánh Switch case trong C#: Tìm hiểu cách sử dụng và ví dụ

Huy Erick
Trọng tâm của chúng ta trong bài viết này sẽ là cấu trúc rẽ nhánh Switch case trong ngôn ngữ lập trình C#. Đây là một phần quan trọng để xử lý các điều kiện...

Trọng tâm của chúng ta trong bài viết này sẽ là cấu trúc rẽ nhánh Switch case trong ngôn ngữ lập trình C#. Đây là một phần quan trọng để xử lý các điều kiện phân nhánh trong mã của chúng ta. Hãy cùng khám phá nhé!

Cấu trúc rẽ nhánh Switch case dạng thiếu và dạng đủ

Dạng thiếu

Cấu trúc Switch case dạng thiếu sẽ giúp bạn xử lý các câu lệnh khi giá trị của biểu thức bằng với các giá trị được chỉ định. Dưới đây là cú pháp của cấu trúc này:

switch () {     case :         ;         break;     case :         ;         break;     .     .     .     case :         ;         break; }

Trong cú pháp trên:

  • switchcase là từ khóa bắt buộc.
  • break là một lệnh nhảy để thoát khỏi cấu trúc Switch case.
  • phải là một biểu thức trả về kết quả có kiểu dữ liệu số nguyên, ký tự, chuỗi hoặc kiểu liệt kê.
  • với i = 1..n là giá trị muốn so sánh với giá trị của .
  • là một hoặc nhiều câu lệnh muốn thực hiện khi giá trị của tương ứng bằng với các giá trị được chỉ định.

Ý nghĩa của cấu trúc Switch case dạng thiếu là duyệt từ trên xuống dưới và kiểm tra xem giá trị của có bằng với các hay không. Nếu bằng, thì sẽ thực hiện các tương ứng.

Ví dụ:

int k = 8; switch (k) {     case 3:         Console.WriteLine("HowKteam");         break;     case 9:         // Case này rỗng, không có câu lệnh thực hiện nên không cần lệnh break     case 10:         Console.WriteLine("Free Education");         break; }

Lưu ý rằng đối với mỗi case trong cấu trúc Switch case dạng thiếu, nếu case đó có lệnh thực hiện, thì cần phải có lệnh nhảy (break) sau đó.

Dạng đủ

Cấu trúc Switch case dạng đủ sẽ giúp bạn xử lý các câu lệnh khi giá trị của biểu thức bằng với các giá trị được chỉ định, và có một trường hợp mặc định nếu không thỏa mãn các giá trị đã chỉ định. Dưới đây là cú pháp của cấu trúc này:

switch () {     case :         ;         break;     case :         ;         break;     .     .     .     case :         ;         break;     default:         ;         break; }

Trong cú pháp trên:

  • default là từ khóa bắt buộc, đại diện cho trường hợp mặc định.
  • là một câu lệnh sẽ được thực hiện khi giá trị của không bằng với bất kỳ nào.

Ý nghĩa của cấu trúc Switch case dạng đủ là duyệt từ trên xuống dưới và kiểm tra xem giá trị của có bằng với các hay không. Nếu bằng, thì sẽ thực hiện các tương ứng. Nếu không bằng bất kỳ giá trị nào, thì sẽ thực hiện .

Ví dụ:

int k = 8; switch (k) {     case 3:         Console.WriteLine("HowKteam");         break;     case 9:         Console.WriteLine("Kteam");         break;     case 10:         Console.WriteLine("Free Education");         break;     default:         Console.WriteLine("Connecting to HowKteam. . .");         break; }

Kết quả khi chạy chương trình sẽ là:

Connecting to HowKteam. . .

Vì không tìm thấy case nào có giá trị bằng với giá trị biến k, nên sẽ thực hiện câu lệnh trong default.

Ví dụ chương trình sử dụng cấu trúc Switch case

Dưới đây là một ví dụ về chương trình sử dụng cấu trúc Switch case. Chương trình này tính năm âm lịch từ năm dương lịch đã nhập.

Thuật toán tính năm âm lịch:

  1. Năm âm lịch = Can + Chi. Vì vậy, cần tính được Can và Chi, sau đó ghép lại là xong.
  2. Tính Can bằng cách:
    • Tìm phần dư của phép chia năm dương lịch cho 10.
    • Tra bảng tra cứu để tìm ra Can tương ứng.
  3. Tính Chi bằng cách:
    • Tìm phần dư của phép chia năm dương lịch cho 12.
    • Tra bảng tra cứu để tìm ra Chi tương ứng.
  4. Nối Can và Chi lại để được kết quả.
int Year; // Biến chứa giá trị năm cần tính. string Can = "", Chi = ""; // Biến chứa kết quả.  Console.Write("Mời bạn nhập một năm bất kỳ: "); Year = Int32.Parse(Console.ReadLine()); // Nhập năm dương lịch và ép kiểu về kiểu số nguyên  // Tìm Can như thuật toán đã trình bày switch (Year % 10) {     case 0:         Can = "Canh";         break;     case 1:         Can = "Tân";         break;     case 2:         Can = "Nhâm";         break;     case 3:         Can = "Quý";         break;     case 4:         Can = "Giáp";         break;     case 5:         Can = "Ất";         break;     case 6:         Can = "Bính";         break;     case 7:         Can = "Đinh";         break;     case 8:         Can = "Mậu";         break;     case 9:         Can = "Kỷ";         break; }  // Tìm Chi như thuật toán đã trình bày switch (Year % 12) {     case 0:         Chi = "Thân";         break;     case 1:         Chi = "Dậu";         break;     case 2:         Chi = "Tuất";         break;     case 3:         Chi = "Hợi";         break;     case 4:         Chi = "Tý";         break;     case 5:         Chi = "Sửu";         break;     case 6:         Chi = "Dần";         break;     case 7:         Chi = "Mẹo";         break;     case 8:         Chi = "Thìn";         break;     case 9:         Chi = "Ti";         break;     case 10:         Chi = "Ngọ";         break;     case 11:         Chi = "Mùi";         break; }  Console.WriteLine("Năm {0} có năm âm lịch là: {1} {2}", Year, Can, Chi); // Nối Can và Chi lại để được năm âm lịch  Console.ReadLine();

Kết quả khi chạy chương trình sẽ là:

Năm 2022 có năm âm lịch là Nhâm Tý

Bạn có thể áp dụng kiến thức đã học để thực hiện các kiểm tra dữ liệu nhập vào trong chương trình.

Kết luận

Bài viết này giúp bạn nắm được cách sử dụng cấu trúc Switch case dạng thiếu và dạng đủ trong ngôn ngữ lập trình C#. Bạn đã học cách viết chương trình sử dụng cấu trúc Switch case để giải quyết các điều kiện phân nhánh. Cùng tiếp tục học khái niệm tiếp theo, đó là Kiểu dữ liệu object trong C#.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để chúng tôi có thể phát triển bài viết tốt hơn. Đừng quên luyện tập và thử thách mình để không ngại khó!

Thảo luận: Nếu bạn có bất kỳ khó khăn hoặc thắc mắc nào về chủ đề này, đừng ngần ngại đặt câu hỏi trong phần bình luận bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

1