CĂN BẢN
NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

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

Trong bài trước, mình đã cùng các bạn tìm hiểu về cấu trúc điều khiển if - else và luyện tập một số bài tập cụ thể đối với lệnh này. Trong bài ngày hôm nay, mình sẽ giới thiệu một dạng khác của cấu trúc điều khiển. Đặt vấn đề là khi có quá nhiều điều kiện để chọn thực hiện thì nếu chúng ta dùng câu lệnh if sẽ rất rối rắm và dài dòng, Vì vậy 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 - case liệt kê các giá trị và chỉ thực hiện các giá trị thích hợp. Và để hiểu hơn lệnh switch - case là gì hãy cùng mình đi đến cuối bài học hôm nay nhé.

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.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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:

sodokhoiswitch PNG

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 freetuts.net
{
    class freetuts
    {
        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("\nfreetuts chuc ban hoc tot !!!");
            Console.ReadKey();
        }
    }
}

 

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

switch1 JPG

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

switch2 JPG

  • 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 freetuts.net
{
    class freetuts
    {
        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 5:

switch3 JPG

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

switch4 JPG

3. Lời kết

Vậy các bạn đã hiểu hơn về cấu trúc rẽ nhánh switch - case chưa ? Mình xin dừng bài học tại đây và có một số bài tập cho các bạn luyện tập đấy! Có thắc mắc gì cứ bình luận bên dưới nhé. Mình sẽ giải đáp ngay sau khi đọc được comment của các bạn. https://freetuts.net Chúc các bạn học tốt !!!

Cùng chuyên mục:

Cách dùng Stack (ngắn xếp) trong C#

Cách dùng Stack (ngắn xếp) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính và phương thức của Stack…

Cách dùng Queue (hàng đợi) trong C#

Cách dùng Queue (hàng đợi) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính, phương thức của Queue, cũng…

Cách dùng Hashtable (bảng băm) trong C#

Cách dùng Hashtable (bảng băm) trong C#

Cụ thể sẽ tìm hiểu Hashtable là gì? các đặc điểm của nó, cùng với…

Sự kiện Enter và Leave trong C# Winforms

Sự kiện Enter và Leave trong C# Winforms

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Một câu hỏi được đặt ra là làm cách nào để có thể phát hiện…

Sắp xếp trộn trong C# (Merge Sort)

Sắp xếp trộn trong C# (Merge Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp xếp các ..

Sắp xếp nổi bọt trong C# (Bubble Sort)

Sắp xếp nổi bọt trong C# (Bubble Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp ...

Cách in ra hình tam giác ký tự * trong C#

Cách in ra hình tam giác ký tự * trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Cách tính tổng các số chẵn từ 1 đến N trong C#

Cách tính tổng các số chẵn từ 1 đến N trong C#

Trước khi đi vào viết chương trình, chúng ta cùng tìm hiểu qua số chẵn…

Cách tính tổng các số lẻ từ 1 đến N trong C#

Cách tính tổng các số lẻ từ 1 đến N trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tính tổng các lẻ…

Cách đếm số chữ số của một số nguyên trong C#

Cách đếm số chữ số của một số nguyên trong C#

Chúng ta cùng xem qua một số ví dụ để hiểu rõ hơn về chương…

Cách tính chu vi và diện tích hình tam giác trong C#

Cách tính chu vi và diện tích hình tam giác trong C#

Tam giác là một loại hình cơ bản trong hình học, có ba đỉnh là…

Cách tính chu vi và diện tích hình tròn trong C#

Cách tính chu vi và diện tích hình tròn trong C#

Trước khi đi vào viết chương trình tính chu vi và diện ..

Cách tính chu vi và diện tích hình chữ nhật trong C#

Cách tính chu vi và diện tích hình chữ nhật trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn ...

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách loại bỏ các ..

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tìm ...

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách xóa các ký tự…

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Trong bài viết này minh sẽ hướng dẫn các bạn cách đếm ...

Cách chuyển đổi nhị phân sang thập phân trong C#

Cách chuyển đổi nhị phân sang thập phân trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách chuyển đổi số ...

Cách chuyển đổi thập phân sang nhị phân trong C#

Cách chuyển đổi thập phân sang nhị phân trong C#

Số nhị phân là các con số có cơ số là 2. Các số nhị…

Top