- 1 1. Giới thiệu
- 2 Tầm quan trọng của xử lý lặp trong ngôn ngữ C
- 3 2. Cơ bản về do while
- 4 3. Ứng dụng của do while
- 5 4. Ví dụ về do while trong mã nguồn
- 6 5. Vòng lặp vô hạn và cách kiểm soát
- 7 6. Sử dụng nhiều điều kiện trong do while
- 8 7. Tổng kết
- 9 8. Bài tập thực hành và đáp án mẫu
- 10 9. Thông tin liên quan & Bước tiếp theo
1. Giới thiệu
Tầm quan trọng của xử lý lặp trong ngôn ngữ C
Trong lập trình, “xử lý lặp” là việc thực hiện đi thực hiện lại cùng một thao tác nhiều lần và rất quan trọng. Trong ngôn ngữ C, các câu lệnh như for
, while
và đặc biệt là do while
được sử dụng để xử lý lặp. Bài viết này sẽ tập trung vào do while
, giải thích từ cách sử dụng cơ bản đến ví dụ thực tiễn.
2. Cơ bản về do while
Cú pháp cơ bản của do while
Câu lệnh do while
đảm bảo rằng nội dung trong vòng lặp sẽ được thực hiện ít nhất một lần. Cú pháp như sau:
do {
// Xử lý cần thực hiện
} while (điều_kiện);
Trong cấu trúc này, phần bên trong do
sẽ được thực thi trước, sau đó điều kiện mới được kiểm tra. Nếu điều kiện là true
thì vòng lặp sẽ tiếp tục, nếu là false
thì vòng lặp kết thúc.
Khác biệt với câu lệnh while
Với while
, điều kiện được kiểm tra trước khi thực hiện vòng lặp, chỉ khi điều kiện là true
thì mới thực hiện nội dung trong vòng lặp. Ngược lại, do while
sẽ thực hiện nội dung vòng lặp trước rồi mới kiểm tra điều kiện, vì vậy luôn được thực hiện ít nhất một lần.
3. Ứng dụng của do while
Lặp lại khi nhập liệu từ người dùng
do while
rất hữu ích khi cần xác thực đầu vào từ người dùng. Ví dụ, khi yêu cầu nhập mật khẩu, bạn có thể sử dụng do while
để kiểm tra giá trị nhập vào, và nếu chưa đúng thì yêu cầu nhập lại một cách dễ dàng.
Xử lý lặp trong trò chơi
Trong lập trình game, do while
được dùng khi cần lặp lại thao tác cho đến khi người chơi chọn một hành động cụ thể, ví dụ như tiếp tục chơi game. Vòng lặp tiếp tục miễn là người chơi chọn “Tiếp tục”.
4. Ví dụ về do while trong mã nguồn
Ví dụ cơ bản về do while
Dưới đây là ví dụ cơ bản về cách sử dụng do while
trong C.
#include <stdio.h>
int main() {
int i = 0;
do {
printf("Đếm: %dn", i);
i++;
} while (i < 5);
return 0;
}
Trong ví dụ này, phần xử lý trong do
sẽ thực hiện trước, vòng lặp tiếp tục miễn là giá trị của i
nhỏ hơn 5. Kết quả sẽ in ra các số từ 0
đến 4
.
Ví dụ nhập liệu từ người dùng
Dưới đây là ví dụ về việc lặp lại việc nhập cho đến khi người dùng nhập đúng điều kiện.
#include <stdio.h>
int main() {
int number;
do {
printf("Vui lòng nhập số từ 1 đến 10: ");
scanf("%d", &number);
} while (number < 1 || number > 10);
printf("Số bạn vừa nhập: %dn", number);
return 0;
}
Đoạn mã này sẽ yêu cầu người dùng nhập lại nếu giá trị nằm ngoài khoảng từ 1
đến 10
. Vòng lặp sẽ tiếp tục cho đến khi nhập đúng.

5. Vòng lặp vô hạn và cách kiểm soát
Tạo vòng lặp vô hạn
Bạn cũng có thể tạo vòng lặp vô hạn với do while
. Vòng lặp vô hạn là vòng lặp mà điều kiện luôn true
, nên sẽ lặp mãi mãi.
do {
// Xử lý lặp vô hạn
} while (1);
Cách kiểm soát vòng lặp vô hạn
Để kiểm soát vòng lặp vô hạn, bạn có thể sử dụng break
hoặc continue
.
- Câu lệnh
break
: Dùng để thoát khỏi vòng lặp. - Câu lệnh
continue
: Bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo.
Dưới đây là ví dụ về vòng lặp vô hạn với break
:
#include <stdio.h>
int main() {
int count = 0;
do {
printf("Số lần lặp: %dn", count);
count++;
if (count > 5) {
break;
}
} while (1);
return 0;
}
Trong đoạn mã này, khi count
lớn hơn 5, lệnh break
sẽ được thực thi và vòng lặp kết thúc.
6. Sử dụng nhiều điều kiện trong do while
Cách dùng nhiều điều kiện
Trong do while
, bạn có thể kết hợp nhiều điều kiện bằng toán tử logic như &&
(AND) hoặc ||
(OR).
do {
// Xử lý cần thực hiện
} while (điều_kiện_1 && điều_kiện_2);
Ví dụ với điều kiện phức tạp
Ví dụ sau đây kiểm tra xem người dùng nhập số trong khoảng từ 1 đến 100, nếu không thì yêu cầu nhập lại.
#include <stdio.h>
int main() {
int number;
do {
printf("Vui lòng nhập số từ 1 đến 100: ");
scanf("%d", &number);
} while (number < 1 || number > 100);
printf("Số bạn vừa nhập: %dn", number);
return 0;
}
Chỉ khi giá trị nhập vào từ 1 đến 100 thì vòng lặp mới kết thúc, nếu không sẽ yêu cầu nhập lại.
7. Tổng kết
do while
rất hữu ích khi bạn muốn đảm bảo nội dung vòng lặp được thực hiện ít nhất một lần. Nếu biết kết hợp giữa while
và do while
sẽ giúp chương trình linh hoạt hơn. Hãy nắm vững cách kiểm soát vòng lặp bằng break
, continue
cũng như ứng dụng điều kiện phức tạp để thành thạo xử lý lặp trong C.
8. Bài tập thực hành và đáp án mẫu
Bài tập
Hãy viết một chương trình yêu cầu người dùng nhập một số nguyên từ 1 đến 10. Nếu nhập sai thì yêu cầu nhập lại, nếu nhập đúng thì in ra giá trị gấp đôi số vừa nhập.
Đáp án mẫu
#include <stdio.h>
int main() {
int number;
do {
printf("Vui lòng nhập số từ 1 đến 10: ");
scanf("%d", &number);
} while (number < 1 || number > 10);
printf("Giá trị gấp đôi số đã nhập: %dn", number * 2);
return 0;
}
Bài tập này sử dụng do while
để kiểm tra đầu vào và yêu cầu nhập lại nếu nhập sai phạm vi.
9. Thông tin liên quan & Bước tiếp theo
Sau khi hiểu về do while
, bạn nên học thêm về các cấu trúc lặp khác như for
và while
. Ngoài ra, chủ đề quan trọng tiếp theo trong C là “con trỏ” (pointer). Hiểu về con trỏ sẽ giúp bạn lập trình ở mức nâng cao hơn. Hãy tìm hiểu tiếp nhé!