Vòng lặp do-while cũng gần giống như vòng lặp while nhưng sự khác biệt chính giữa vòng lặp do-while và vòng lặp while là trong vòng lặp do-while, điều kiện được kiểm tra ở cuối thân vòng lặp. Khối câu lệnh bên trong vòng lặp sẽ được thực hiện 1 hoặc nhiều lần cho đến khi kiểm tra điều kiện trả về bằng false thì sẽ kết thúc vòng lặp.
Trong vòng lặp do-while, thân vòng lặp sẽ thực thi ít nhất một lần rồi mới kiểm tra điều kiện.
Sử dụng do-while khi bạn không biết rõ số lượng vòng lặp - chỉ biết điều kiện dừng.
Cấu trúc của vòng lặp do-while
cpp
do {
// statements inside the body of the loop
} while (testExpression);
Ví dụ:
cpp
int n = 1234;
do {
// statements inside the body of the loop
// need to update the value of n
} while (n > 0);
Vòng lặp do-while hoạt động như thế nào
- Đầu tiên khối câu lệnh bên trong vòng lặp
do-whilesẽ được chạy một lần rồi mới đến đánh giá biểu thức kiểm tra điều kiện bên trong ngoặc đơn(). - Nếu biểu thức kiểm tra là
true, các câu lệnh bên trong thân vòng lặpdo-whileđược thực thi tiếp. Các câu lệnh thực thi bên trong thân vòng lặp cần phải cập nhật lại biểu thức kiểm tra điều kiện. - Sau đó, biểu thức kiểm tra được đánh giá lại.
- Quá trình diễn ra cho đến khi biểu thức kiểm tra được đánh giá là
false. - Nếu biểu thức kiểm tra là
false, vòng lặp chấm dứt (kết thúc).
Luồng hoạt động của vòng lặp do-while

Ví dụ về vòng lặp do-while
Ví dụ:
Tính tổng các số nguyên dương cho đến khi nhập vào một số bằng
0hoặc một số âm thì dừng lại (không cộng số âm này vào tổng).
cpp
#include <stdio.h>
int main() {
int number;
int sum = 0;
do {
printf("Enter a number: ");
scanf("%d", &number);
if (number > 0) {
sum += number;
}
} while (number > 0);
printf("\nSum = %d",sum);
}
Kết quả
Enter a number: 5
Enter a number: 4
Enter a number: 6
Enter a number: 2
Enter a number: -2
Sum = 17
- Bài này nói rõ điều kiện dừng là
n > 0, nhưng chúng ta sẽ không thể biết được người dùng sẽ nhập bao nhiêu số để tính tổng nên sẽ cần dùng vòng lặp. nlại do người dùng nhập từ bàn phím, chúng ta sẽ không thể biết được lần đầu tiên người dùng sẽ nhập số gì? Vì vậy chúng ta sử dụngdo-whileđể code bên trong thân vòng lặp được chạy một lần để chúng ta lấy được giá trị củanrồi mới kiểm tra được điều kiện.