Trong hướng dẫn này, bạn sẽ tìm hiểu về vòng lặp while và vòng lặp do … while với sự trợ giúp của các ví dụ.
Trong lập trình, các vòng lặp được sử dụng để lặp lại một khối mã. Ví dụ, nếu bạn muốn hiển thị một tin nhắn 100 lần, thì bạn có thể sử dụng một vòng lặp. Nó chỉ là một ví dụ đơn giản; bạn có thể đạt được nhiều hơn nữa với các vòng lặp.
Trong hướng dẫn trước, bạn đã tìm hiểu về vòng lặp JavaScript for . Ở đây, bạn sẽ tìm hiểu về while
và do...while
lặp lại.
JavaScript trong khi vòng lặp
Cú pháp của while
vòng lặp là:
while (condition) {
// body of loop
}
Đây,
- Một
while
vòng lặp đánh giá điều kiện bên trong dấu ngoặc đơn()
. - Nếu điều kiện được đánh giá là
true
, mã bên trongwhile
vòng lặp được thực thi. - Điều kiện được đánh giá một lần nữa.
- Quá trình này tiếp tục cho đến khi điều kiện là
false
. - Khi điều kiện được đánh giá là
false
, vòng lặp sẽ dừng lại.
Để tìm hiểu thêm về các điều kiện , hãy truy cập Toán tử lôgic và So sánh JavaScript .
Lưu đồ về Vòng lặp trong khi
Lưu đồ của vòng lặp while trong JavaScript
Ví dụ 1: Hiển thị các số từ 1 đến 5
// program to display numbers from 1 to 5
// initialize the variable
let i = 1, n = 5;
// while loop from i = 1 to 5
while (i <= n) {
console.log(i);
i += 1;
}
Đầu ra
1 2 3 4 5
Đây là cách chương trình này hoạt động.
Iteration | Variable | Condition: i <= n | Action |
---|---|---|---|
1st | i = 1 n = 5 | true | 1 is printed. i is increased to 2. |
2nd | i = 2 n = 5 | true | 2 is printed. i is increased to 3. |
3rd | i = 3 n = 5 | true | 3 is printed. i is increased to 4. |
4th | i = 4 n = 5 | true | 4 is printed. i is increased to 5. |
5th | i = 5 n = 5 | true | 5 is printed. i is increased to 6. |
6th | i = 6 n = 5 | false | The loop is terminated |
Ví dụ 2: Chỉ tổng các số dương
// program to find the sum of positive numbers
// if the user enters a negative numbers, the loop ends
// the negative number entered is not added to sum
let sum = 0;
// take input from the user
let number = parseInt(prompt('Enter a number: '));
while(number >= 0) {
// add all positive numbers
sum += number;
// take input again if the number is positive
number = parseInt(prompt('Enter a number: '));
}
// display the sum
console.log(`The sum is ${sum}.`);
Đầu ra
Enter a number: 2 Enter a number: 5 Enter a number: 7 Enter a number: 0 Enter a number: -3 The sum is 14.
Trong chương trình trên, người dùng được nhắc nhập một số.
Ở đây, parseInt()
được sử dụng vì prompt()
nhận đầu vào từ người dùng dưới dạng chuỗi. Và khi các chuỗi số được thêm vào, nó sẽ hoạt động như một chuỗi. Ví dụ '2' + '3' = '23'
,. Vì vậy, parseInt()
chuyển đổi một chuỗi số thành số.
Các while
vòng lặp tiếp tục cho đến khi người dùng nhập vào một số âm. Trong mỗi lần lặp, số do người dùng nhập sẽ được thêm vào sum
biến.
Khi người dùng nhập một số âm, vòng lặp kết thúc. Cuối cùng, tổng tổng được hiển thị.
JavaScript do … while Loop
Cú pháp của do...while
vòng lặp là:
do {
// body of loop
} while(condition)
Đây,
- Phần thân của vòng lặp được thực thi lúc đầu. Sau đó, điều kiện được đánh giá.
- Nếu điều kiện được đánh giá là
true
, phần thân của vòng lặp bên trongdo
câu lệnh sẽ được thực thi lại. - Điều kiện được đánh giá một lần nữa.
- Nếu điều kiện được đánh giá là
true
, phần thân của vòng lặp bên trongdo
câu lệnh sẽ được thực thi lại. - Quá trình này tiếp tục cho đến khi điều kiện được đánh giá là
false
. Sau đó, vòng lặp dừng lại.
Lưu ý : do...while
vòng lặp tương tự như while
vòng lặp. Sự khác biệt duy nhất là trong do…while
vòng lặp, phần thân của vòng lặp được thực hiện ít nhất một lần.
Lưu đồ vòng lặp do … while
Lưu đồ của JavaScript vòng lặp do … while
Hãy xem hoạt động của do...while
vòng lặp.
Ví dụ 3: Hiển thị các số từ 1 đến 5
// program to display numbers
let i = 1;
const n = 5;
// do...while loop from 1 to 5
do {
console.log(i);
i++;
} while(i <= n);
Đầu ra
1 2 3 4 5
Đây là cách chương trình này hoạt động.
Iteration | Variable | Condition: i <= n | Action |
---|---|---|---|
i = 1 n = 5 | not checked | 1 is printed. i is increased to 2. | |
1st | i = 2 n = 5 | true | 2 is printed. i is increased to 3. |
2nd | i = 3 n = 5 | true | 3 is printed. i is increased to 4. |
3rd | i = 4 n = 5 | true | 4 is printed. i is increased to 5. |
4th | i = 5 n = 5 | true | 5 is printed. i is increased to 6. |
5th | i = 6 n = 5 | false | The loop is terminated |
Ví dụ 4: Tổng các số dương
// to find the sum of positive numbers
// if the user enters negative number, the loop terminates
// negative number is not added to sum
let sum = 0;
let number = 0;
do {
sum += number;
number = parseInt(prompt('Enter a number: '));
} while(number >= 0)
console.log(`The sum is ${sum}.`);
Đầu ra 1
Enter a number: 2 Enter a number: 4 Enter a number: -500 The sum is 6.
Ở đây, do...while
vòng lặp tiếp tục cho đến khi người dùng nhập một số âm. Khi số âm, vòng lặp kết thúc; số âm không được thêm vào biến tổng .
Đầu ra 2
Enter a number: -80 The sum is 0.
Phần nội dung của do...while
vòng lặp chỉ chạy một lần nếu người dùng nhập một số âm.
Vòng lặp vô hạn trong khi
Nếu điều kiện của một vòng lặp luôn là true
, vòng lặp sẽ chạy trong khoảng thời gian vô hạn (cho đến khi bộ nhớ đầy). Ví dụ,
// infinite while loop
while(true){
// body of loop
}
Đây là một ví dụ về do...while
vòng lặp vô hạn .
// infinite do...while loop
const count = 1;
do {
// body of loop
} while(count == 1)
Trong các chương trình trên, điều kiện luôn là true
. Do đó, phần thân của vòng lặp sẽ chạy trong thời gian vô hạn.
for Vs while Loop
Một for
vòng lặp thường được sử dụng khi số lần lặp được biết đến. Ví dụ,
// this loop is iterated 5 times
for (let i = 1; i <=5; ++i) {
// body of loop
}
Và while
và do...while
vòng lặp thường được sử dụng khi số lần lặp không xác định. Ví dụ,
while (condition) {
// body of loop
}