Trong ví dụ sau, mã trong vòng lặp sẽ chạy đi chạy lại miễn là biến [i] nhỏ hơn 10
Nếu bạn quên tăng biến được sử dụng trong điều kiện, vòng lặp sẽ không bao giờ kết thúc. Điều này sẽ làm hỏng trình duyệt của bạn
Vòng lặp Do While
Vòng lặp do while
là một biến thể của vòng lặp while. Vòng lặp này sẽ thực thi khối mã một lần, trước khi kiểm tra xem điều kiện có đúng không, sau đó nó sẽ lặp lại vòng lặp miễn là điều kiện đúng
cú pháp
do {
// khối mã sẽ được thực thi
}
while [điều kiện];
Thí dụ
Ví dụ bên dưới sử dụng vòng lặp do while
. Vòng lặp sẽ luôn được thực hiện ít nhất một lần, ngay cả khi điều kiện sai, bởi vì khối mã được thực thi trước khi điều kiện được kiểm tra
Đừng quên tăng biến được sử dụng trong điều kiện, nếu không vòng lặp sẽ không bao giờ kết thúc
So sánh For và While
Nếu bạn đã đọc chương trước về vòng lặp for, bạn sẽ phát hiện ra rằng vòng lặp while cũng giống như vòng lặp for, với câu lệnh 1 và câu lệnh 3 bị lược bỏ
Các vòng lặp rất tiện lợi nếu bạn muốn chạy đi chạy lại cùng một đoạn mã, mỗi lần có một giá trị khác nhau
Thường thì đây là trường hợp khi làm việc với mảng
thay vì viết
văn bản += ô tô[0] + "
";
văn bản += ô tô[1] + "
";
text += cars[2] + "
";
text += cars[3] + "
";
text += cars[4] + "
";
text += cars[5] + "
";
Bạn có thể viết
for [let i = 0; i < xe. chiều dài;
text += cars[i] + "
";
}
Các loại vòng lặp khác nhau
JavaScript hỗ trợ các loại vòng lặp khác nhau
for
- lặp qua một khối mã nhiều lầnfor/in
- lặp qua các thuộc tính của một đối tượngfor/of
- lặp qua các giá trị của một đối tượng có thể lặp lạiwhile
- lặp qua một khối mã trong khi một điều kiện cụ thể là đúngdo/while
- cũng lặp qua một khối mã trong khi một điều kiện cụ thể là đúng
vòng lặp for
Câu lệnh for
tạo một vòng lặp với 3 biểu thức tùy chọn
for [biểu thức 1; biểu thức 2; biểu thức 3] {
// khối mã sẽ được thực thi
}
Biểu thức 1 được thực thi [một lần] trước khi thực thi khối mã
Biểu thức 2 xác định điều kiện để thực thi khối mã
Biểu thức 3 được thực thi [mỗi lần] sau khi khối mã đã được thực thi
Thí dụ
for [let i = 0; i < 5; i++] {
text += "Số là " + i + "
"
}
Từ ví dụ trên, bạn có thể đọc
Biểu thức 1 đặt một biến trước khi vòng lặp bắt đầu [let i = 0]
Biểu thức 2 xác định điều kiện để vòng lặp chạy [i phải nhỏ hơn 5]
Biểu thức 3 tăng một giá trị [i++] mỗi khi khối mã trong vòng lặp được thực thi
biểu thức 1
Thông thường bạn sẽ sử dụng biểu thức 1 để khởi tạo biến được sử dụng trong vòng lặp [let i = 0]
Đây không phải là luôn luôn như vậy. JavaScript không quan tâm. Biểu thức 1 là tùy chọn
Bạn có thể bắt đầu nhiều giá trị trong biểu thức 1 [được phân tách bằng dấu phẩy]
Thí dụ
for [let i = 0, len = xe. độ dài, văn bản = "";
text += cars[i] + "
";
}
Và bạn có thể bỏ qua biểu thức 1 [như khi các giá trị của bạn được đặt trước khi vòng lặp bắt đầu]
Thí dụ
let i = 2;
let len = xe. độ dài;
let text = "";
for [; i < len; i++] {
text += xe[
";
}
biểu thức 2
Biểu thức 2 thường được dùng để đánh giá điều kiện của biến ban đầu
Đây không phải là luôn luôn như vậy. JavaScript không quan tâm. Biểu thức 2 cũng là tùy chọn
Nếu biểu thức 2 trả về true, vòng lặp sẽ bắt đầu lại. Nếu nó trả về false, vòng lặp sẽ kết thúc
Nếu bạn bỏ qua biểu thức 2, bạn phải cung cấp dấu ngắt bên trong vòng lặp. Nếu không vòng lặp sẽ không bao giờ kết thúc. Điều này sẽ làm hỏng trình duyệt của bạn. Đọc về nghỉ giải lao trong chương sau của hướng dẫn này
biểu thức 3
Thường thì biểu thức 3 tăng giá trị của biến ban đầu
Đây không phải là luôn luôn như vậy. JavaScript không quan tâm. Biểu thức 3 là tùy chọn
Biểu thức 3 có thể làm bất cứ điều gì như tăng âm [i--], tăng dương [i = i + 15] hoặc bất kỳ điều gì khác
Biểu thức 3 cũng có thể được bỏ qua [như khi bạn tăng các giá trị của mình bên trong vòng lặp]
Thí dụ
let i = 0;
let len = xe. độ dài;
let text = "";
for [; i < len; ] {
text += car[i
";
i++;
}
Phạm vi vòng lặp
Sử dụng var
trong một vòng lặp
Thí dụ
biến tôi = 5;
for [var i = 0; i < 10; i++] {
// một số mã
}
// Đây là tôi 10
Tự mình thử »Sử dụng let
trong một vòng lặp
Thí dụ
cho i = 5;
for [let i = 0; i < 10; i++] {
// một số mã
}
// Ở đây tôi là 5
Tự mình thử »Trong ví dụ đầu tiên, sử dụng var
, biến được khai báo trong vòng lặp sẽ khai báo lại biến bên ngoài vòng lặp
Trong ví dụ thứ hai, sử dụng let
, biến được khai báo trong vòng lặp không khai báo lại biến ngoài vòng lặp
Khi let
được sử dụng để khai báo biến i trong vòng lặp, biến i sẽ chỉ hiển thị trong vòng lặp