JavaScript - Lệnh Break: Lối thoát của bạn trong các Vòng lặp và Switch

Xin chào, siêu sao lập trình tương lai! Hôm nay, chúng ta sẽ cùng khám phá một trong những mẹo nhỏ của JavaScript: lệnh break. Hãy tưởng tượng nó như nút "cửa thoát khẩn cấp" khi bạn bị mắc kẹt trong một vòng lặp hoặc câu lệnh switch. Hãy bắt đầu nào!

JavaScript - Break Statement

Lệnh Break là gì?

Lệnh break giống như nhấn nút phóng ghế trong một vòng lặp hoặc câu lệnh switch. Nó告诉 JavaScript, "Tôi đã xong rồi, hãy ra ngoài!" Khi JavaScript gặp lệnh break, nó ngay lập tức thoát khỏi vòng lặp hoặc câu lệnh switch hiện tại và tiếp tục với dòng mã tiếp theo sau vòng lặp hoặc switch.

Cú pháp

Cú pháp của lệnh break rất đơn giản:

break;

Đó là tất cả! Chỉ cần từ break theo sau là dấu phẩy đơn. Nhưng đừng để sự đơn giản của nó đánh lừa bạn - từ khóa nhỏ này có sức mạnh lớn!

Sơ đồ 流程

Hãy tưởng tượng cách lệnh break hoạt động trong một vòng lặp:

┌─────────────┐
│ Bắt đầu Vòng lặp │
└──────┬──────┘
│
┌──────▼──────┐
│ Kiểm tra    │
┌────┤ Điều kiện  │
│    └──────┬──────┘
│           │ true
│    ┌──────▼──────┐
│    │ Thực hiện   │
│    │ Thân Vòng lặp │
│    └──────┬──────┘
│           │
│    ┌──────▼──────┐
│    │ Gặp lệnh    │
│    │ Break?      │
│    └──────┬──────┘
│           │ yes
│    ┌──────▼──────┐
└────► Thoát Vòng lặp   │
└─────────────┘

Ví dụ: Lệnh Break trong Vòng lặp For

Hãy bắt đầu với một ví dụ kinh điển: sử dụng break trong vòng lặp for. Hãy tưởng tượng bạn là một giáo viên (như tôi!) đang kiểm tra một chồng bài thi. Bạn muốn tìm học sinh đầu tiên đạt điểm 100 và sau đó dừng lại.

let scores = [85, 92, 78, 100, 88, 95];
let perfectScore = false;

for (let i = 0; i < scores.length; i++) {
if (scores[i] === 100) {
console.log("Điểm hoàn hảo tìm thấy tại vị trí: " + i);
perfectScore = true;
break;
}
}

if (!perfectScore) {
console.log("Không tìm thấy điểm hoàn hảo.");
}

Trong ví dụ này, chúng ta vòng qua mảng scores. Ngay khi tìm thấy điểm 100, chúng ta ghi lại vị trí của nó, đặt perfectScore thành true, và sau đó break ra khỏi vòng lặp. Điều này giúp chúng ta khỏi cần kiểm tra các điểm còn lại.

Ví dụ: Lệnh Break trong Vòng lặp While

Bây giờ, hãy sử dụng break trong vòng lặp while. Hãy tưởng tượng bạn đang chơi một trò chơi đoán số, nơi bạn cần đoán một số từ 1 đến 10.

let secretNumber = 7;
let guess;
let attempts = 0;

while (true) {
guess = Math.floor(Math.random() * 10) + 1;
attempts++;

console.log("Lượt " + attempts + ": Đoán " + guess);

if (guess === secretNumber) {
console.log("Đúng! Nó mất " + attempts + " lượt.");
break;
}

if (attempts >= 10) {
console.log("Xin lỗi, bạn đã đạt số lần thử tối đa.");
break;
}
}

Trong ví dụ này, chúng ta sử dụng một vòng lặp vô hạn (while true). Chúng ta break ra khỏi vòng lặp trong hai kịch bản: khi đoán chính xác hoặc khi đạt số lần thử tối đa.

Lệnh Break trong Vòng lặp Lồng

break trở nên mạnh mẽ hơn khi xử lý các vòng lặp lồng. Nó cho phép bạn thoát khỏi vòng lặp trong và tiếp tục với vòng lặp ngoài. Hãy tưởng tượng bạn đang tổ chức một giải đấu nhỏ và cần ghép cặp các cầu thủ, nhưng muốn dừng lại ngay khi tìm thấy một cặp có cùng kỹ năng.

let players = [
{name: "Alice", skill: 7},
{name: "Bob", skill: 9},
{name: "Charlie", skill: 5},
{name: "David", skill: 7}
];

outerLoop: for (let i = 0; i < players.length; i++) {
for (let j = i + 1; j < players.length; j++) {
if (players[i].skill === players[j].skill) {
console.log("Cặp tìm thấy: " + players[i].name + " và " + players[j].name);
break outerLoop;
}
}
}

Tại đây, chúng ta sử dụng lệnh break có nhãn. Bằng cách thêm nhãn (outerLoop:) vào vòng lặp ngoài và chỉ định nhãn này trong lệnh break, chúng ta có thể thoát khỏi cả hai vòng lặp cùng một lúc.

Lệnh Break trong Câu lệnh Switch Case

Cuối cùng, hãy xem cách break hoạt động trong câu lệnh switch. Hãy tưởng tượng bạn đang viết một máy tính đơn giản:

let operation = '+';
let num1 = 5, num2 = 3;
let result;

switch (operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
console.log("Phép toán không hợp lệ");
break;
}

console.log("Kết quả: " + result);

Trong câu lệnh switch, break rất quan trọng. Nếu không có nó, JavaScript sẽ tiếp tục thực thi câu lệnh tiếp theo ngay cả khi không khớp với operation. Điều này được gọi là hành vi "tràn qua" (fall-through), điều mà thường không phải là điều chúng ta muốn.

Tóm tắt các Phương thức sử dụng Lệnh Break

Dưới đây là bảng tham khảo nhanh về các cách khác nhau chúng ta có thể sử dụng break:

Bối cảnh Sử dụng Mô tả
Vòng lặp For break; Thoát khỏi vòng lặp for ngay lập tức
Vòng lặp While break; Thoát khỏi vòng lặp while ngay lập tức
Vòng lặp Lồng break labelName; Thoát khỏi nhiều vòng lặp cùng một lúc
Câu lệnh Switch break; Thoát khỏi câu lệnh switch

Và thế là xong, các bạn! Lệnh break có thể nhỏ, nhưng nó rất hữu ích. Nó giúp bạn kiểm soát luồng mã của mình, làm cho mã hiệu quả hơn và thường dễ đọc hơn. Nhớ rằng, lập trình giống như nấu ăn - đôi khi bạn cần biết khi nào dừng lại khuấy và lấy nồi ra khỏi bếp. Đó chính là điều break làm cho bạn trong JavaScript!

Bây giờ, hãy ra ngoài và "break" thứ gì đó (trong mã của bạn, tất nhiên)! Chúc các bạn lập trình vui vẻ!

Credits: Image by storyset