Trong bài viết này, ta sẽ cùng tìm hiểu về câu lệnh break và continue trong JavaScript cùng với sự trợ giúp của các ví dụ dẫn chứng.
Câu lệnh break trong JavaScript
Đôi khi trong khi lập trình, ta muốn dừng một vòng lặp với bất kỳ điều kiện nào, câu lệnh break sẽ rất có ích cho các trường hợp như vậy và nó sẽ được sử dụng để kết thúc vòng lặp ngay lập tức nếu nó được thực thi.
Cú pháp của câu lệnh break như sau:
1 |
break [nhãn]; |
Chú ý: Tham số nhãn là giá trị tùy chọn, tức là ta có thể thêm hoặc bỏ qua và tham số này hiếm khi được sử dụng.
Ví dụ: Sử dụng câu lệnh break.
1 2 3 4 5 6 |
for (let a = 1; a <= 100; a++) { if (a == 2) { break; } console.log("Lập trình Javascript"); } |
Kết quả:
1 |
Lập trình Javascript |
Trong chương trình trên, vòng lặp for được dùng để in ra giá trị của chuỗi ký tự trong mỗi lần lặp. Câu lệnh break được sử dụng và đặt trong câu điều kiện if với điều kiện là nếu a = 2, thì câu lệnh break sẽ được thực hiện. Do đó, ngay sau lần in ra chuỗi ký tự lần đầu tiên, vòng lặp sẽ ngừng bởi lúc này giá trị của a bằng 2 và câu lệnh break được thực thi và dừng hẳn vòng lặp for.
Chú ý: Câu lệnh break hầu như luôn được sử dụng với các câu lệnh điều kiện để đưa ra quyết định.
Ví dụ 2:
1 2 3 4 5 6 7 8 |
let a; while(1) { a = parseInt(prompt('Nhập mật khẩu: ')); if(a==16) { break; } } console.log("Mật khẩu chính xác!"); |
Trong đoạn mã trên, ta đã thực hiện một vòng lặp while vô hạn bởi điều kiện được đánh giá là luôn đúng. Tuy nhiên, ta cho phép người dùng nhập một số bất kỳ ở dạng mật khẩu, nếu người dùng nhập số 16, thì câu lệnh break bên trong câu điều kiện if được thực thi và kết thúc vòng lặp. Do đó, câu lệnh break trong đoạn mã trên đã ngừng một vòng lặp while vô hạn ngay khi người dùng nhập đúng giá trị là 16.
Câu lệnh break bên trong vòng lặp lồng nhau
Khi câu lệnh break được sử dụng bên trong vòng lặp được lồng, nó sẽ kết thúc vòng lặp được lồng bên trong.
Ví dụ: Câu lệnh break sử dụng trong vòng lặp lồng nhau.
1 2 3 4 5 6 7 8 |
for (let a = 1; a <= 5; a++) { for (let b = 1; b <= 5; b++) { if ((a == 4)||(b == 5)) { break; } console.log(`a = ${a}, b = ${b}`); } } |
Kết quả:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
a = 1, b = 1 a = 1, b = 2 a = 1, b = 3 a = 1, b = 4 a = 2, b = 1 a = 2, b = 2 a = 2, b = 3 a = 2, b = 4 a = 3, b = 1 a = 3, b = 2 a = 3, b = 3 a = 3, b = 4 a = 5, b = 1 a = 5, b = 2 a = 5, b = 3 a = 5, b = 4 |
Trong đoạn mã trên, ta đã đặt một điều kiện với nếu a = 4 hoặc b = 5 thì ta sẽ không in ra các cặp số a và b này. Do đó, kết quả sẽ không xuất hiện các cặp giá trị a b có giá trị a = 4 và có b = 5.
Câu lệnh break sử dụng với nhãn
Khi sử dụng các vòng lặp lồng nhau, ta cũng có thể kết thúc vòng lặp bên ngoài bằng một câu lệnh break cộng với nhãn. Tuy nhiên, việc sử dụng câu lệnh break với nhãn hiếm khi được áp dụng trong JavaScript vì điều này làm cho đoạn mã trở nên khó đọc và khó hiểu hơn.
Bằng cách sử dụng câu lệnh break mà không sử dụng nhãn, ta sẽ chỉ có thể thoát khỏi các vòng lặp hoặc khối lệnh switch. Tuy nhiên, nếu sử dụng câu lệnh break có sử dụng nhãn, ta sẽ có thể thoát khỏi bất kỳ khối lệnh nào.
Ví dụ: Thoát khỏi vòng lặp bên ngoài.
1 2 3 4 5 6 7 8 9 |
point1: for (let a = 1; a <= 5; a++) { for (let b = 1; b <= 5; b++) { if ((a == 4)||(b == 5)) { break point1; } console.log(`a = ${a}, b = ${b}`); } } |
Kết quả:
1 2 3 4 |
a = 1, b = 1 a = 1, b = 2 a = 1, b = 3 a = 1, b = 4 |
Trong đoạn mã trên, ta đã sử dụng câu lệnh break bên trong vòng lặp lồng nhau. point1 là nhãn được sử dụng. Thông thường, việc sử dụng câu lệnh break bên trong vòng lặp được lồng sẽ chỉ có thể dừng vòng lặp đó. Tuy nhiên, ta sử dụng break với nhãn, điều này sẽ giúp thoát khỏi cả vòng lặp bên ngoài, tức là dừng toàn bộ vòng lặp.
Câu lệnh continue trong JavaScript
Trong phần này, ta sẽ cùng tìm hiểu về câu lệnh continue cùng với các ví dụ dẫn chứng.
Câu lệnh continue được sử dụng để bỏ qua lần lặp hiện tại của vòng lặp và luồng điều khiển của chương trình sẽ được chuyển sang lần lặp tiếp theo.
Cú pháp của câu lệnh continue như sau:
1 |
continue [nhãn]; |
Chú ý: nhãn là giá trị tùy chọn (tức là có thể thêm hoặc bỏ qua) và hiếm khi được sử dụng.
Câu lệnh continue sử dụng với vòng lặp for
Trong vòng lặp for, câu lệnh continue thực hiện bỏ qua vòng lặp hiện tại và luồng điều khiển sẽ chuyển đến vòng lặp tiếp theo.
Ví dụ: Sử dụng câu lệnh continue.
1 2 3 4 5 6 |
for (let a = 1; a <= 10; a++) { if ((a == 5)||(a == 6)) { continue; } console.log(a); } |
Kết quả:
1 2 3 4 5 6 7 8 |
1 2 3 4 7 8 9 10 |
Trong chương trình trên, vòng lặp for dùng để in ra giá trị của a trong mỗi lần lặp. Tuy nhiên, ta có sử dụng câu lệnh điều kiện if với điều kiện là nếu a = 6 hoặc a =5 thì câu lệnh continue được thực thi. Điều này có nghĩa là nếu a = 5 hoặc a = 6, ta sẽ thực hiện bỏ qua vòng lặp đó và không thực thi việc in ra giá trị 5 và 6. Do vậy, kết quả nhận được sẽ không có giá trị 5 hoặc 6 xuất hiện.
Chú ý: Câu lệnh continue hầu như luôn được sử dụng với các câu lệnh điều kiện đưa ra quyết định.
Chú ý 2: Câu lệnh break và continue trong Javascript là hoàn toàn khác nhau. Câu lệnh break có chức năng kết thúc hẳn vòng lặp. Tuy nhiên, câu lệnh continue chỉ bỏ qua lần lặp hiện tại và vẫn thực thi các vòng lặp tiếp theo.
Câu lệnh continue sử dụng với vòng lặp while
Trong vòng lặp while, câu lệnh continue thực hiện bỏ qua vòng lặp hiện tại và luồng điều khiển của chương trình sẽ quay trở lại điều kiện trong vòng lặp while.
Câu lệnh continue hoạt động theo cùng một cách đối với các vòng lặp while và do…while.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 |
let tong_so = 0; let a = 0; while (a < 3) { a++; if (a == 2) { continue; } tong_so += a; } console.log(tong_so); |
kết quả:
1 |
4 |
Trong đoạn mã trên, ta đã thực hiện tính tổng từ 1 tới 3. Tổng kỳ vọng sẽ là 1 + 2 + 3 = 6. Tuy nhiên ta đã thực hiện câu điều kiện if với điều kiện a = 2, ta sẽ không thực hiện cộng thêm giá trị 2 vào tổng số. Do đó, kết quả nhận được sẽ là 4.
Câu lệnh continue được sử dụng trong vòng lặp lồng nhau
Khi câu lệnh continue được sử dụng bên trong vòng lặp được lồng, câu lệnh này sẽ bỏ qua lần lặp hiện tại của vòng lặp bên trong.
Ví dụ:
1 2 3 4 5 6 7 8 |
for (let a = 1; a <= 2; a++) { for (let b = 1; b <= 2; b++) { if (b == 2) { continue; } console.log(`${a} ${b}`); } } |
Kết quả:
1 2 |
1 1 2 1 |
Trong chương trình trên, khi câu lệnh continue được thực hiện, nó sẽ bỏ qua bước lặp hiện tại trong vòng lặp bên trong và luồng điều khiển của chương trình sẽ chuyển đến lần lặp tiếp theo của vòng lặp bên trong. Do đó, giá trị của b = 2 không bao giờ được in ra.
Câu lệnh continue sử dụng với nhãn
Việc sử dụng nhãn cùng với câu lệnh continue hiếm khi được sử dụng trong khi lập trình trong JavaScript bởi điều này sẽ làm cho đoạn mã trở nên khó đọc và khó hiểu hơn.
Ví dụ: Sử dụng câu lệnh continue với nhãn.
1 2 3 4 5 6 7 8 |
point1: for(let i = 0; i <= 3; i++){ for(let j = 0; j <= 3; j ++){ if(i==2) continue point1; console.log(i, j); } } |
Kết quả:
1 2 3 4 5 6 7 8 9 10 11 12 |
0 0 0 1 0 2 0 3 1 0 1 1 1 2 1 3 3 0 3 1 3 2 3 3 |
Trong ví dụ trên, ta đã thực hiện bỏ qua vòng lặp với giá trị là i = 2, do đó, các cặp giá trị i và j với i = 2 sẽ không được in ra.
Trên đây là khái niệm và ví dụ cơ bản về câu lệnh break và continue trong JavaScript. Hy vọng mọi người có thể áp dụng vào trong chương trình của mình. Mọi người hãy tiếp tục theo dõi các bài tiếp theo và cập nhật các bài tiếp theo về lập trình JavaScript trên tek4 nhé!
P/s: Cảm ơn mọi người đã tin tưởng tek4!