1. Vòng lặp ngược

Java có một loại whilevòng lặp khác - do-whilevòng lặp. Nó rất giống với whilevòng lặp thông thường và cũng chỉ bao gồm hai phần: "điều kiện" và "phần thân vòng lặp". Thân vòng lặp được thực hiện lặp đi lặp lại miễn là điều kiện là true. Nói chung, một do-whilevòng lặp trông như thế này:

do
   statement;
while (condition);

hoặc

do
{
   block of statements
}
while (condition);

Đối với một whilevòng lặp, trình tự thực hiện là: điều kiện , thân vòng lặp , điều kiện , thân vòng lặp , điều kiện , thân vòng lặp , ...

Nhưng đối với do-whilevòng lặp thì hơi khác một chút: thân vòng lặp , điều kiện , thân vòng lặp , điều kiện , thân vòng lặp , ...

Trên thực tế, điểm khác biệt duy nhất giữa whilevòng lặp và do-whilevòng lặp là thân vòng lặp được thực hiện ít nhất một lần cho một do-whilevòng lặp.


2. Lợi ích của việc sử dụng do-whilevòng lặp

Về cơ bản, điểm khác biệt duy nhất giữa do-whilevòng lặp và whilevòng lặp là phần thân của do-whilevòng lặp được thực hiện ít nhất một lần.

Nói chung, một do-whilevòng lặp được sử dụng khi không cần kiểm tra điều kiện vòng lặp nếu phần thân vòng lặp chưa được thực thi. Ví dụ: nếu một số phép tính nhất định được thực hiện trong thân vòng lặp và sau đó được sử dụng trong điều kiện .

Ví dụ:

Chương trình đọc các dòng từ bàn phím cho đến khi từ exitđược nhập

trong khi làm trong khi
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

Các câu lệnh breakcontinuetrong một do-whilevòng lặp hoạt động giống như trong một whilevòng lặp.


3. So sánh do-whilevòng lặp: Java vs Pascal

Một lần nữa, Pascal có một dạng tương tự của do-whilevòng lặp, nhưng nó được gọi là repeat-untilvòng lặp. Ngoài ra, nó hơi khác so với do-whilevòng lặp. Trong một repeat-untilvòng lặp, điều kiện cho biết khi nào nên thoát khỏi vòng lặp hơn là khi nào nên tiếp tục vòng lặp đó.

Ví dụ:

pascal Java
 
Repeat
   ReadLn(s);
Until s = 'exit';
 
String s;
do {
   s = console.nextLine();
}
while ( !s.equals("exit") );

So với Java, cách Pascal thể hiện điều này hết sức đẹp mắt. Chúng ta phải bắt đầu với các ví dụ từ Pascal, nếu không bạn sẽ cười đấy.