JavaScript

Câu lệnh rẽ nhánh Switch trong JavaScript

Câu lệnh rẽ nhánh Switch trong JavaScript
Được viết bởi Minh Hoàng

Series lập trình JavaScript, ngôn ngữ lập trình linh động, thực thi phía client.

Câu lệnh rẽ nhánh Switch trong JavaScript

– Câu lệnh switch được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.

– Sử dụng câu lệnh switch để chọn một khối lệnh trong nhiều khối lệnh để thực hiện ứng với điều kiện đúng với nó.

1. Cú pháp:
switch(expression) {
    case x:
        code block
        break;
    case y:
        code block
        break;
    default:
        code block
}

Case cuối cùng trong khối chuyển đổi switch, thì có thể có hoặc không có break.
Ngược lại thì bắt buộc phải có break.

– Trong đó:

  • expression: biểu thức sẽ được so sánh 1 lần duy nhất với các case bên dưới.
  • case giá trị của expression sẽ được so sánh lần lượt với giá trị của case.
  • Nếu giá trị của expression match (giống) với giá trị của case thì khối lệnh (code block) tương ứng của case sẽ được thực hiện. Thực hiện xong, sẽ thoát luôn ra khỏi switch với từ khóa break.
  • Ngược lại, giá trị của expression KHÔNG match case nào thì khối lệnh (code block) của default sẽ được thực hiện.
2. Ví dụ:

– Phương thức getDay() trả về ngày (thứ) trong tuần là một số từ 0 đến 6 (Sunday=0, Monday=1, Tuesday=2,…)

– Ví dụ này sử dụng số ngày trong tuần để lấy ra thứ trong tuần:

switch (new Date().getDay()) {
    case 0:
        day = "Chủ nhật";
        break;
    case 1:
        day = "Thứ 2";
        break;
    case 2:
        day = "Thứ 3";
        break;
    case 3:
        day = "Thứ 4";
        break;
    case 4:
        day = "Thứ 5";
        break;
    case 5:
        day = "Thứ 6";
        break;
    case  6:
        day = "Thứ 7";
}
Try it »

3. Từ khóa default:

– Từ khóa default chỉ định các lệnh sẽ thực thi nếu không có case nào phù hợp với điều kiện so sánh của switch:

– Nếu hôm nay không phải là Thứ Bảy (6) hoặc Chủ Nhật (0), thì sẽ viết ra một thông báo mặc định:

Ví dụ:
switch (new Date().getDay()) {
    case 6:
        text = "Hôm nay là: Thứ 7";
        break;
    case 0:
        text = "Hôm nay là: Chủ nhật";
        break;
    default:
        text = "Không biết hôm nay là thứ mấy!!!";
}
Try it »

– Case default không nhất thiết phải là case cuối cùng trong câu lệnh switch:

Ví dụ:
switch (new Date().getDay()) {
    default:
        text = "Không biết hôm nay là thứ mấy!!!";
        break;
    case 6:
        text = "Hôm nay là: Thứ 7";
        break;
    case 0:
        text = "Hôm nay là: Chủ nhật";
}
Try it »

Nếu default không phải là case cuối cùng trong khối chuyển đổi switch, hãy nhớ kết thúc case default bằng break.

4. Có thể nhóm chung khối lệnh với nhau:

– Đôi khi bạn sẽ muốn các case chuyển đổi khác nhau sử dụng chung một khối lệnh.

– Trong ví dụ bên dưới: case 4 và 5 sử dụng chung khối lệnh, case 0 và 6 sử dụng chung một khối lệnh khác:

Ví dụ:
switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "Sắp đến cuối tuần.";
        break;
    case 0:
    case 6:
        text = "Cuối tuần.";
        break;
    default:
        text = "Trông chờ tới cuối tuần.";
}
Try it »

5. Chú ý khi thực hiện so sánh điều kiện switch:

– Giá trị so sánh cần phải cùng loại với nhau.

– Chẳng hạn ở ví dụ sau đây, sẽ không có case nào match (phù hợp) với x, vì x kiểu string, còn giá trị của case là number:

Ví dụ:
var x = "0";

switch (x) {
    case 0:
        text = "Off";
        break;
    case 1:
        text = "On";
        break;
    default:
        text = "Không tìm thấy!!!";
}
Try it »

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

Translate »