- 1 1. Giới thiệu
- 2 2. Câu lệnh do-while trong Java là gì? (Cú pháp cơ bản)
- 3 3. Sự khác biệt rõ ràng giữa while và do-while
- 4 4. Ví dụ Vòng lặp do-while trong Java (Thân thiện với người mới bắt đầu)
- 5 5. Khi Nào Sử Dụng do-while: Ưu và Nhược Điểm
- 6 6. Kết hợp do-while với break và continue
- 7 7. Lỗi thường gặp và lưu ý quan trọng
- 8 8. Câu hỏi thường gặp (FAQ)
- 8.1 Q1. When should I use a do-while loop?
- 8.2 Q2. How should I choose between while and do-while?
- 8.3 Q3. Why does my loop become infinite?
- 8.4 Q4. Is the do-while loop commonly used in real projects?
- 8.5 Q5. Can I ignore do-while and still program in Java?
- 8.6 Q6. Is the semicolon after while mandatory?
- 9 9. Final Summary
1. Giới thiệu
“Sự khác nhau giữa câu lệnh do-while và while hoặc for là gì?” Đây là một trong những câu hỏi đầu tiên mà nhiều người mới bắt đầu gặp phải khi học Java. Vòng lặp do-while là một vòng lặp kiểm tra sau đảm bảo khối mã chạy ít nhất một lần. Nó đặc biệt hữu ích trong các tình huống thực tế như kiểm tra đầu vào người dùng hoặc đảm bảo một thứ gì đó được hiển thị ít nhất một lần.
Trong chương này, chúng tôi sẽ làm rõ những gì bạn sẽ học để giúp bạn nắm bắt khái niệm tổng thể của vòng lặp do-while. Các phần tiếp theo sẽ đề cập đến cú pháp, sự khác biệt so với while, mã mẫu, các lỗi thường gặp và các câu hỏi thường gặp. Khi kết thúc, bạn sẽ có thể sử dụng nó một cách tự nhiên và tự tin.
Đối tượng mục tiêu
- Người mới học Java đến những người muốn củng cố nền tảng của mình
- Bất kỳ ai muốn hiểu sự khác biệt và các trường hợp sử dụng phù hợp giữa
whilevàdo-whilevới các ví dụ - Độc giả muốn tránh các lỗi thường gặp của người mới như vòng lặp vô hạn hoặc thiếu dấu chấm phẩy
Những gì bạn sẽ học
- Cú pháp cơ bản và hành vi của vòng lặp
do-while( kiểm tra sau / thực thi ít nhất một lần ) - Sự khác biệt rõ ràng giữa
whilevàdo-while, và cách chọn đúng vòng lặp - Mã mẫu thân thiện với người mới và cách đọc kết quả
- Các lưu ý quan trọng khi sử dụng
breakvàcontinue - Các lỗi và cạm bẫy thường gặp (thiếu dấu chấm phẩy, vòng lặp vô hạn do thiết kế điều kiện kém, v.v.)
Trong các phần tiếp theo, chúng tôi sẽ bắt đầu với cú pháp, sau đó tiến hành từng bước qua các so sánh, ví dụ và các lưu ý để giúp củng cố hiểu biết của bạn.
2. Câu lệnh do-while trong Java là gì? (Cú pháp cơ bản)
Java cung cấp một số cấu trúc vòng lặp như for và while, nhưng vòng lặp do-while có một đặc điểm độc đáo. Nó đầu tiên thực thi khối mã và sau đó đánh giá điều kiện, vì vậy nó thường được gọi là vòng lặp kiểm tra sau.
Các vòng lặp khác đánh giá điều kiện trước khi thực thi, có nghĩa là mã có thể không chạy chút nào. Ngược lại, vòng lặp do-while luôn chạy ít nhất một lần, làm cho nó phù hợp cho các kịch bản cụ thể.
Cú pháp cơ bản
do {
// Code to execute
} while (condition);
Một chi tiết quan trọng là bạn phải bao gồm dấu chấm phẩy (;) sau while (condition). Nếu quên sẽ gây ra lỗi biên dịch.
Luồng thực thi
- Thực thi mã bên trong
do { ... } - Đánh giá
while (condition); - Nếu điều kiện là
true, lặp lại vòng lặp - Nếu điều kiện là
false, thoát khỏi vòng lặp
Tóm lại, thứ tự là: thực thi → đánh giá → lặp lại.
Ví dụ đơn giản
int count = 1;
do {
System.out.println("Loop count: " + count);
count++;
} while (count <= 3);
Kết quả
Loop count: 1
Loop count: 2
Loop count: 3
Mặc dù điều kiện được kiểm tra sau khi thực thi, thông điệp luôn được in ra ít nhất một lần.
3. Sự khác biệt rõ ràng giữa while và do-while
Trong Java, các câu lệnh vòng lặp phổ biến nhất là while và do-while. Chúng trông giống nhau, nhưng có một sự khác biệt quan trọng: khi nào điều kiện được đánh giá. Hiểu sự khác biệt này giúp việc chọn vòng lặp phù hợp dễ dàng hơn nhiều.
Thứ tự thực thi của câu lệnh while
while (condition) {
// Code to execute
}
- 1. Điều kiện được đánh giá trước
- 2. Mã chỉ thực thi nếu điều kiện là
true - 3. Nếu điều kiện là
false, mã sẽ không bao giờ chạy
Thứ tự thực thi của câu lệnh do-while
do {
// Code to execute
} while (condition);
- 1. Mã được thực thi trước
- 2. Điều kiện được đánh giá sau đó
- 3. Nếu điều kiện là
true, vòng lặp lặp lại - 4. Nếu điều kiện là
false, vòng lặp kết thúc
Bảng so sánh
| Feature | while Loop | do-while Loop |
|---|---|---|
| Condition check timing | Before execution | After execution |
| Possibility of zero executions | Yes | No (always runs at least once) |
| Usage frequency | High | Lower |
Giải thích trực quan
- while loop : “Kiểm tra vé trước khi vào địa điểm.” Nếu bạn không có vé, bạn sẽ không bao giờ vào.
- do-while loop : “Vào địa điểm trước, sau đó kiểm tra vé khi ra khỏi.” Bạn luôn vào ít nhất một lần.
Mã So Sánh Đơn Giản
int x = 5;
// while loop
while (x < 5) {
System.out.println("while: executed");
}
// do-while loop
do {
System.out.println("do-while: executed");
} while (x < 5);
Kết quả
do-while: executed
Mặc dù điều kiện là false ngay từ đầu, vòng lặp do-while vẫn thực thi một lần.
4. Ví dụ Vòng lặp do-while trong Java (Thân thiện với người mới bắt đầu)
Bây giờ chúng ta hãy xem các ví dụ thực tế sử dụng vòng lặp do-while để hiểu rõ hơn cách nó hoạt động. Điểm quan trọng cần nhớ là vòng lặp luôn thực thi ít nhất một lần.
Ví dụ Cơ bản: Lặp lại Bộ đếm
int count = 1;
do {
System.out.println("Hello! Count: " + count);
count++;
} while (count <= 3);
Kết quả
Hello! Count: 1
Hello! Count: 2
Hello! Count: 3
Trong ví dụ này, thông báo được hiển thị khi count nhỏ hơn hoặc bằng 3. Vì điều kiện được đánh giá sau khi thực thi, thông báo luôn được in ít nhất một lần.
Khi Điều Kiện Sai Ngay Từ Đầu
int num = 10;
do {
System.out.println("This code runs!");
} while (num < 5);
Kết quả
This code runs!
Mặc dù điều kiện num < 5 ban đầu là sai, vòng lặp vẫn thực thi một lần. Hành vi này là đặc trưng riêng của vòng lặp do-while.
Sử dụng Số Ngẫu Nhiên: Quay Xí Ngầu Cho Đến Khi Được 6
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rand = new Random();
int dice;
do {
dice = rand.nextInt(6) + 1; // Random number from 1 to 6
System.out.println("Dice roll: " + dice);
} while (dice != 6);
System.out.println("You rolled a 6. The loop ends!");
}
}
Kết quả Mẫu
Dice roll: 2
Dice roll: 5
Dice roll: 6
You rolled a 6. The loop ends!
Chương trình này tiếp tục quay xí ngầu cho đến khi xuất hiện số 6. Với vòng lặp while, mã có thể không chạy gì nếu điều kiện sai ngay từ đầu, nhưng vòng lặp do-while đảm bảo ít nhất một lần quay.
Những Điểm Chính
- Thích hợp khi bạn cần thực thi mã ít nhất một lần (ví dụ: nhập liệu người dùng, các lần thử ban đầu).
- So sánh
do-whilevớiwhilebằng các ví dụ mã giúp dễ dàng hiểu sự khác biệt.
5. Khi Nào Sử Dụng do-while: Ưu và Nhược Điểm
Cho đến nay, chúng ta đã đề cập đến cú pháp và các ví dụ. Bây giờ hãy thảo luận khi nào bạn nên sử dụng vòng lặp do-while và xem xét các ưu và nhược điểm của nó.
Các Trường Hợp Đề Xuất Sử Dụng
Khi mã phải chạy ít nhất một lần wp:list /wp:list
- Yêu cầu nhập liệu từ người dùng (ví dụ: hộp thoại xác nhận).
- Quay xí ngầu ít nhất một lần trước khi kiểm tra điều kiện.
- Thử truy cập tệp hoặc kiểm tra kết nối ít nhất một lần.
Khi logic sau điều kiện cảm thấy tự nhiên hơn wp:list /wp:list
- Quy trình “Thử trước, sau đó quyết định có tiếp tục hay không”.
Ưu Điểm
- Đảm bảo ít nhất một lần thực thi Hữu ích khi bạn luôn phải hiển thị một thông báo hoặc thực hiện một hành động ban đầu.
- Phù hợp cho việc xác thực đầu vào và logic dựa trên thử nghiệm Cấu trúc vòng lặp tự nhiên phù hợp với các trường hợp bạn muốn chạy một lần trước khi kiểm tra điều kiện.
Nhược Điểm
- Giảm tính dễ đọc trong một số trường hợp Các nhà phát triển không quen với
do-whilecó thể thấy logic này kém trực quan. - Tần suất sử dụng thấp Trong các dự án thực tế, vòng lặp
forvàwhilephổ biến hơn. Việc lạm dụngdo-whilecó thể gây nhầm lẫn cho đồng đội.
Tóm Tắt
- Sử dụng
do-whilechỉ khi có lý do rõ ràng để thực thi ít nhất một lần. - Trong hầu hết các trường hợp khác, vòng lặp
whilehoặcforlà lựa chọn an toàn và rõ ràng hơn.
6. Kết hợp do-while với break và continue
The do-while loop becomes even more flexible when combined with break and continue. Let’s look at common usage patterns.
break: Thoát vòng lặp sớm
The break statement immediately terminates the loop. It works the same way inside a do-while loop.
int count = 1;
do {
if (count > 5) {
break; // Exit the loop when count exceeds 5
}
System.out.println("Count: " + count);
count++;
} while (true);
System.out.println("Loop has ended");
Kết quả
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
Loop has ended
Although this looks like an infinite loop due to while (true), the break statement ensures a proper exit.

continue: Bỏ qua tới lần lặp tiếp theo
The continue statement skips the remaining code in the current iteration and proceeds to the next condition check.
int num = 0;
do {
num++;
if (num % 2 == 0) {
continue; // Skip even numbers
}
System.out.println("Odd number: " + num);
} while (num < 5);
Kết quả
Odd number: 1
Odd number: 3
Odd number: 5
In this example, even numbers are skipped and only odd numbers are printed.
Ví dụ thực tế: Vòng lặp nhập liệu người dùng
A common pattern is forcing at least one user input, then exiting when a condition is met.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input;
do {
System.out.print("Type 'exit' to quit: ");
input = scanner.nextLine();
if (input.equals("exit")) {
break;
}
System.out.println("You entered: " + input);
} while (true);
System.out.println("Program terminated");
}
}
Các điểm chính
break→ Thoát hoàn toàn vòng lặpcontinue→ Chỉ bỏ qua lần lặp hiện tại- Kết hợp chúng với
do-whilecho phép kiểm soát linh hoạt đồng thời đảm bảo ít nhất một lần thực thi
7. Lỗi thường gặp và lưu ý quan trọng
Although the do-while loop has a simple structure, beginners often run into a few common mistakes. Below are the most frequent errors and points you should pay close attention to.
1. Quên dấu chấm phẩy
In a do-while loop, a semicolon after while (condition) is mandatory. Forgetting it will cause a compilation error.
// ❌ Incorrect: causes a compilation error
do {
System.out.println("Processing");
} while (x < 5) // Missing semicolon
// ✅ Correct
do {
System.out.println("Processing");
} while (x < 5);
2. Vòng lặp vô hạn
If the loop condition never becomes false, the loop will never stop. This often happens when the variable used in the condition is not updated.
int x = 1;
do {
System.out.println("Execution: " + x);
// x is never updated, so the condition remains true
} while (x > 0);
This code results in an infinite loop. Always ensure that the condition can eventually change and terminate the loop.
3. Thực thi một lần không mong muốn
Because a do-while loop always runs at least once, the code may execute a single time even when you did not intend to loop.
int num = 10;
do {
System.out.println("Executed");
} while (num < 5);
Kết quả
Executed
If your intention was to skip execution entirely, this behavior can introduce bugs. Careful condition design is essential.
4. Nhầm lẫn do-while với while
Beginners often assume do-while behaves exactly like while. Forgetting that do-while always executes once can easily lead to unexpected results.
Tóm tắt
- Quên dấu chấm phẩy là lỗi phổ biến nhất
- Luôn cập nhật các biến để tránh vòng lặp vô hạn
- Thiết kế điều kiện cẩn thận, nhớ quy tắc “thực thi ít nhất một lần”
8. Câu hỏi thường gặp (FAQ)
Below are common questions beginners ask when learning the do-while loop, presented in a Q&A format for quick reference.
Q1. When should I use a do-while loop?
A: Use it when you need the code to run at least once. Typical examples include user input prompts or initial checks that must be performed before deciding whether to continue.
Q2. How should I choose between while and do-while?
A:
- while loop → Execute code only when the condition is satisfied
- do-while loop → Execute code at least once, regardless of the condition
In most cases, while is sufficient. Choose do-while when a single guaranteed execution is required.
Q3. Why does my loop become infinite?
A: This happens when the loop condition always evaluates to true. Common causes include failing to update loop variables or not defining a proper exit condition.
The solution is to ensure the condition can eventually become false.
Q4. Is the do-while loop commonly used in real projects?
A: Not very often. Most production code relies on for or while loops. However, do-while is still useful for scenarios like user input handling or confirmation loops.
Q5. Can I ignore do-while and still program in Java?
A: You can write most programs using for and while. However, understanding do-while is essential for reading existing code and avoiding misinterpretation of loop behavior.
Q6. Is the semicolon after while mandatory?
A: Yes. The semicolon after while (condition) is required. Omitting it will cause a compilation error.
9. Final Summary
We have covered the Java do-while loop from fundamentals to practical usage. Let’s review the most important points.
Key Characteristics of the do-while Loop
- A loop that always executes at least once
- Execution order is process → condition check (post-test loop)
- A semicolon is required at the end of the statement
Differences from the while Loop
while→ Condition is checked before execution; the code may never rundo-while→ Execution is guaranteed at least once
Practical Use Cases
- When user input must be requested at least once
- Trial-based repetition such as dice rolls or connection tests
- Flexible control combined with
breakandcontinue
Important Cautions
- Compilation errors caused by missing semicolons
- Infinite loops due to missing variable updates
- Design conditions carefully, remembering that execution always happens once
Applying This Knowledge
- Although usage frequency is low, understanding
do-whileis essential for reading and maintaining existing code - Use
fororwhileby default, and applydo-whileonly when it clearly fits the logic
In summary, the do-while loop is a powerful construct when you need guaranteed execution. Mastering it will deepen your understanding of Java loop control and help you write clearer, more reliable code.


