Đây là các khác biệt cơ bản giữa vòng lặp do-while và while trong C/C++.
Vòng lặp while thực hiện câu lệnh mục tiêu miễn là điều kiện đúng. Cú pháp:
while(condition) {
statement(s);
}
statement(s) có thể là một câu lệnh hoặc khối lệnh. condition là biểu thức bất kỳ, true là giá trị khác 0. Vòng lặp chạy trong khi condition true. Khi false, chương trình nhảy đến dòng sau vòng lặp.
Ví dụ while
#include <stdio.h>
int main() {
int a = 10;
while (a < 20) {
printf("value of a: %d\n", a);
a++;
}
return 0;
}
Kết quả
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
Vòng lặp do...while khác for và while ở chỗ nó kiểm tra điều kiện ở cuối vòng lặp. do...while tương tự while, nhưng đảm bảo thực thi ít nhất một lần.
do {
statement(s);
} while(condition);
Biểu thức điều kiện ở cuối vòng lặp, nên câu lệnh trong vòng lặp chạy một lần trước khi kiểm tra. Nếu true, quay lại do và chạy lại. Lặp lại cho đến khi condition false.
Ví dụ do-while
#include <stdio.h>
int main() {
int a = 10;
do {
printf("value of a: %d\n", a);
a = a + 1;
} while (a < 20);
return 0;
}
Kết quả
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19
Tóm tắt khác biệt:
| While Loop | Do-While Loop |
|---|---|
| Vòng lặp kiểm soát vào (entry controlled). Kiểm tra điều kiện trước khi vào vòng lặp | Vòng lặp kiểm soát ra (exit controlled). Kiểm tra điều kiện khi thoát vòng lặp |
| While có thể chạy 0 hoặc nhiều lần | Do-while chạy ít nhất 1 lần |
| Biến điều kiện phải khởi tạo trước khi vào vòng lặp | Biến điều kiện có thể khởi tạo bên trong vòng lặp |
while(condition){
//statement
} |
do{
//statement
}while(condition); |