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

Ngày đăng: 30/09/2020   -    Cập nhật: 30/09/2020


Một trong những phần rất quan trọng trong điều khiển hoạt động của chương trình JavaScript là câu lệnh rẽ nhánh. Bao gồm: if, if else, if else ifswitch case

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

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

Hãy bắt đầu tìm hiểu cùng mình nhé.

1. Câu lệnh if


Câu lệnh if trong JavaScript sẽ cho phép bạn thực thi một khối lệnh dựa trên việc đánh giá điều kiện đưa ra.

Sơ đồ hoạt động của câu lệnh if:


Sơ đồ hoạt động của câu lệnh if trong JavaScript

Sơ đồ hoạt động của câu lệnh if trong JavaScript

Sơ đồ trên hoạt động như sau:

  • Đầu vào sẽ kiểm tra điều kiện (trả về giá trị boolean).
  • Nếu điều kiện đúng (true) sẽ thực thi khối lệnh bên dưới rồi kết thúc.
  • Nếu điều kiện sai (false) thì kết thúc mà không thực thi khối lệnh.

Cú pháp câu lệnh if:


// Cú pháp câu lệnh if
if (bieuThucDieuKien)
{
    // Các câu lệnh thực thi
}
 

Trong đó:

  • if: Là từ khóa của câu lệnh if
  • bieuThucDieuKien: Là một biểu thức điều kiện trả về giá trị boolean (true hoặc false)
  • { ... }: Bên trong này là các câu lệnh thực thi nếu biểu thức điều kiện đúng (true)

Hãy thử làm ví dụ để hiểu thêm về câu lệnh if:


// Ví dụ câu lệnh if
if (9 < 10) {
    console.log("Chín nhỏ hơn mười!");
}
 

Chạy chương trình, ta có kết quả:


Chín nhỏ hơn mười!
 

Như vậy, điều kiện đã trả về true và câu lệnh bên trong ngoặc nhọn { } được thực thi.

Vậy nếu biểu thức trả về false thì sao?



// Ví dụ if: Điều kiện sai
if (9 > 10) {
    console.log("Chín lớn hơn mười!");
}
 

Khi chạy chương trình, chẳng thấy cái gì thay đổi cả.

Đơn giản chỉ là biểu thức điều kiện trả về false nên câu lệnh trong { } chưa được thực thi.

Để tiếp tục xử lý nếu điều kiện trả về sai thì chúng ta có ...


2. Câu lệnh if else trong JS


Câu lệnh if else thì đầy đủ hơn câu lệnh if. Chúng ta có thể dựa vào kết quả trả về để xử lý cả hai trường hợp đúng hoặc sai của điều kiện.

Sơ đồ hoạt động:


Sơ đồ hoạt động của câu lệnh if else trong JavaScript

Sơ đồ hoạt động của câu lệnh if else trong JavaScript

Đối với sơ đồ này:

  • Đầu tiên là kiểm tra điều kiện
  • Nếu điều kiện đúng thì khối lệnh thực thi 1 sẽ làm việc, khi thực thi xong sẽ kết thúc câu lệnh.
  • Nếu điều kiện sai thì khối lệnh thực thi 2 sẽ làm việc, khi thực thi xong sẽ kết thúc câu lệnh.

Cú pháp:


// Cú pháp câu lệnh if else
if (bieuThucDieuKien) {
    // Các câu lệnh thực thi nếu đúng
else {
    // Các câu lệnh thực thi nếu sai
}
 

Trong đó:

  • if ... else: Là từ khóa
  • bieuThucDieuKien: Là biểu thức sẽ được đánh giá và trả về giá trị boolean (true hoặc false)
  • Khối lệnh của if sẽ thực thi nếu bieuThucDieuKien trả về giá trị true
  • Khối lệnh của else sẽ thực thi nếu bieuThucDieuKien trả về giá trị false

Ví dụ:


// Ví dụ câu lệnh if else
if (9 < 10) {
    console.log("Chín nhỏ hơn mười!");
else {
    console.log("Chín lớn hơn mười!");
}
 

Dĩ nhiên, kết quả nhận được chắc chắn là:


Chín nhỏ hơn mười!
 

Tuy nhiên, bây giờ cố tình để điều kiện trả về false xem như thế nào nhé:


// Ví dụ câu lệnh if else
if (9 > 10) {
    console.log("Thực thi khi điều kiện đúng");
else {
    console.log("Thực thi khi điều kiện sai");
}
 

Kết quả:


Thực thi khi điều kiện sai
 

3. Câu lệnh if else if trong JavaScript


Câu lệnh if else if trong JavaScript là câu lệnh if else lồng nhau

Cú pháp câu lệnh if else if như sau:


if (bieuThucDieuKien1) {
    // Khối lệnh 1 
else if (bieuThucDieuKien2) {
    // Khối lệnh 2
else {
    // Khối lệnh 3
}
 


Trong đó:

  • bieuThucDieuKien1: Là biểu thức điều kiện đầu tiên. Nếu true, chương trình sẽ thực thi Khối lệnh 1 và thoát
  • bieuThucDieuKien2: Nếu bieuThucDieuKien1 trả về false nó sẽ tiếp tục đánh giá bieuThucDieuKien2. Nếu trả về true, thực thi Khối lệnh 2 và thoát.
  • Nếu bieuThucDieuKien1, và bieuThucDieuKien2 đều trả về false thì Khối lệnh 3 (trong else) được thực thi và thoát.

Ví dụ: Ta sẽ dùng câu lệnh if else if để kiểm tra một số là có 1 số, 2 số hay nhiều chữ số.


// Ví dụ if else if trong JS
let x = 50;

if (x < 10 ) {
    console.log("X là số có 1 chữ số");
else if (x < 100) {
    console.log("X là số có 2 chữ số");
else {
    console.log("X là số có nhiều hơn 2 chữ số");
}
 

Kết quả:


X là số có 2 chữ số
 

4. Câu lệnh switch case trong JS


Câu lệnh switch case cũng thuộc loại câu lệnh rẽ nhánh như câu lệnh if else nhưng nó sẽ thực hiện các hành động dựa trên một loạt các điều kiện khác nhau.

Sơ đồ hoạt động:


Sơ đồ hoạt động của câu lệnh switch case trong JavaScript

Sơ đồ hoạt động của câu lệnh switch case trong JavaScript
 
Nó hoạt động đơn giản như thế này:
 
  • Khi mà biểu thức ban đầu được đưa ra, nó sẽ so sánh với các trường hợp như a, b, c, d, e
  • Nếu trùng với trường hợp nào sẽ thực thi câu lệnh trong trường hợp đó rồi kết thúc câu lệnh.
  • Nếu không có trường hợp nào đúng thì trường hợp mặc định sẽ được thực thi.

Cú pháp:


// Cú pháp câu lệnh switch case trong JS
switch (bieuThuc) {
    case A:
        // Khối lệnh 1 
        break;
    case B:
        // Khối lệnh 2
        break;
    default:
        // Khối lệnh mặc định
}
 


Trong đó:

  • bieuThuc: Là biểu thức ban đầu sẽ trả về giá trị nào đó
  • case A, case B: khi bieuThuc bằng A (hoặc B) thì thực hiện khối lệnh tương ứng.
  • default: khi không có điều kiện nào phía trên được thực thi thì khối lệnh trong default sẽ được thực thi.
  • break: Đây là câu lệnh thoát khỏi chương trình

Ví dụ: Mình sẽ thực thi một câu lệnh switch case mô tả lựa chọn của người dùng nhé.

Bạn còn nhớ phương thức prompt không?

Chúng ta sẽ lấy lựa chọn từ phía người dùng nhé:



// Nhận dữ liệu từ người dùng
let x = parseInt(prompt("Vui lòng chọn số 1: Hiểu | số 2: Không hiểu"));

// Thực hiện xử lý thông qua switch case
switch (x) {
  case 1:
    alert("Bạn đã hiểu rồi đó");
    break;
  case 2:
    alert("Bạn chọn không hiểu");
    break;
  default:
    alert("Bạn chưa chọn gì cả");
    break;
}
 

Lưu ý: Vì dữ liệu nhập vào từ người dùng đều là text nên mình sử dụng parseInt để chuyển thành number cho dễ thực hiện.

> Chưa hiểu thì xem lại bài học các hàm thao tác với String trong JS.

Kết quả khi chạy chương trình trên trình duyệt ta được như sau:


Ví dụ switch case (1)
Phương thức prompt sẽ thông báo để người dùng nhập dữ liệu vào.
Ví dụ switch case (2)
Trong trường hợp này mình nhập là 1, kết quả là...
Ví dụ switch case (3)
Nếu mình không nhập gì nhưng vẫn nhấn OK thì...

Ví dụ switch case (4)

Trong câu lệnh switch case, nếu bạn bỏ qua từ khóa break, chương trình sẽ tiếp tục thực thi câu lệnh tiếp theo, cho dù case đó là gì đi nữa.


// Cố tình quên break
let x = 1;
switch (x) {
    case 1:
        console.log("Bạn đã hiểu rồi đó");
    case 2:
        console.log("Bạn chọn không hiểu");
        break;
    default:
        console.log("Bạn chưa chọn gì cả");
        break;
}
 

Kết quả nhận được là:


Bạn đã hiểu rồi đó
Bạn chọn không hiểu
 

Hãy thử làm tiếp một ví dụ nữa để hiểu hơn về câu lệnh switch case nhé.

Ví dụ: In ra màn hình console xem hôm nay là thứ mấy

Đầu tiên, ta phải có dữ liệu đầu vào như sau:



// Khởi tạo đối tượng ngày giờ
let d = new Date();

// Lấy giá trị đại diện cho thứ trong tuần
let x = d.getDay();
 

Nếu bạn quên thì có thể xem lại bài Date trong JavaScript.

Sau khi có giá trị của thứ trả về từ câu lệnh d.getDay() rồi, ta có thể xử lý trong câu lệnh switch case như sau:



// Thực hiện xử lý, thông báo tên thứ trong tuần
switch (x) {
    case 0:
        console.log("Hôm nay là Chủ Nhật");
        break;
    case 1:
        console.log("Hôm nay là Thứ Hai");
        break;
    case 2:
        console.log("Hôm nay là Thứ Ba");
        break;
    case 3:
        console.log("Hôm nay là Thứ Tư");
        break;
    case 4:
        console.log("Hôm nay là Thứ Năm");
        break;
    case 5:
        console.log("Hôm nay là Thứ Sáu");
        break;
    case 6:
        console.log("Hôm nay là Thứ Bảy");
        break;
    default:
        console.log("Có gì đó sai sai");
        break;
}
 

Bạn thử chạy xem, hôm nay là thứ mấy?

Câu lệnh switch case có rất nhiều ứng dụng. Tuy nhiên, không phải lúc nào cũng sử dụng chúng.

Ví dụ, đây là chương trình chào buổi sáng tương ứng với ngày trong tuần:



// Khởi tạo đối tượng ngày giờ
let d = new Date();
switch (d.getDay()) {
    case 0:
        console.log("Chúc một ngày nghỉ vui vẻ!");
        break;
    case 1:
        console.log("Chúc bạn một ngày làm việc hiệu quả");
        break;
    case 2:
        console.log("Chúc bạn một ngày làm việc hiệu quả");
        break;
    case 3:
        console.log("Chúc bạn một ngày làm việc hiệu quả");
        break;
    case 4:
        console.log("Chúc bạn một ngày làm việc hiệu quả");
        break;
    case 5:
        console.log("Chúc bạn một ngày làm việc hiệu quả");
        break;
    case 6:
        console.log("Chúc một ngày nghỉ vui vẻ!");
        break;
    default:
        console.log("Có gì đó sai sai");
        break;
}
 

Tuy nhiên, chúng ta có thể xử lý như thế này:


// Khởi tạo đối tượng ngày giờ
let d = new Date();

// In câu chúc tương ứng
if (d.getDay() == 0 || d.getDay() == 6) {
    console.log("Chúc một ngày nghỉ vui vẻ!");
else {
    console.log("Chúc bạn một ngày làm việc hiệu quả");
}
 

Kết quả nhận được tương tự nhau.

Ngắn gọn hơn nhiều phải không nào?

> Mình đã sử dụng toán tử hoặc || để xử lý trong biểu thức điều kiện. Đọc lại bài Toán tử trong JavaScript để nhớ lại nhé.


* Bài tập:

  • Sử dụng câu lệnh switch case để hoàn thành chương trình máy tính đơn giản.
  • Cho phép người dùng nhập vào 2 số
  • Lựa chọn phép tính +, -, x, : để tính toán giữa 2 số đó. (Ví dụ a + b)
  • In kết quả hoặc thông báo ra màn hình

Tổng kết


Vậy là mình vừa hướng dẫn các bạn cơ bản về câu lệnh rẽ nhánh trong JavaScript. Bạn hãy làm lại các ví dụ và bài tập để hiểu hơn nhé.

Đây cũng là phần rất quan trọng trong lập trình đó. Hẹn gặp lại các bạn ở bài học tiếp theo.

Bình luận Facebook
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!