Do while loop là gì?

Noun Programming
Vòng lặp do while

Vòng lặp do while (do while loop) tương tự như vòng lặp while (while loop) với một điểm khác biệt quan trọng. Phần thân (body) của vòng lặp do while (do while loop) được thực thi (execute) ít nhất một lần. Chỉ khi đó, biểu thức kiểm tra (test expression) mới được đánh giá (evaluate).

Cú pháp của vòng lặp do while (do while loop) là:


do {
  // the body of the loop
}
while (testExpression);

Vòng lặp do while (do while loop) hoạt động như thế nào?

  • Phần thân của vòng lặp do ... while được thực thi một lần. Chỉ khi đó, biểu thức đánh giá testExpression mới được đánh giá (evaluate).
  • Nếu testExpression là true, phần thân của vòng lặp được thực thi lại và testExpression được đánh giá một lần nữa.
  • Quá trình này tiếp tục cho đến khi testExpression trở thành false.
  • Nếu testExpression là false, vòng lặp kết thúc.

Bên dưới là code ví dụ về vòng lặp do while (do while loop):


// Program to add numbers until the user enters zero

#include <stdio.h>
int main() {
  double number, sum = 0;

  // the body of the loop is executed at least once
  do {
    printf("Enter a number: ");
    scanf("%lf", &number);
    sum += number;
  }
  while(number != 0.0);

  printf("Sum = %.2lf",sum);

  return 0;
}

Output:


Enter a number: 1.5
Enter a number: 2.4
Enter a number: -3.4
Enter a number: 4.2
Enter a number: 0
Sum = 4.70

Ở đây, chúng tôi đã sử dụng vòng lặp do while (do while loop) để nhắc người dùng nhập một số. Vòng lặp hoạt động miễn là số đầu vào không phải là 0.

Vòng lặp do while (do while loop) thực thi ít nhất một lần tức là lần lặp (iteration) đầu tiên chạy mà không cần kiểm tra điều kiện (condition). Điều kiện chỉ được kiểm tra sau khi lần lặp đầu tiên đã được thực thi.


do {
  printf("Enter a number: ");
  scanf("%lf", &number);
  sum += number;
}
while(number != 0.0);

Vì vậy, nếu đầu vào (input) đầu tiên là một số khác 0, thì số đó sẽ được cộng vào biến sum và vòng lặp tiếp tục đến lần lặp tiếp theo. Quá trình này được lặp lại cho đến khi người dùng nhập 0.

Nhưng nếu đầu vào đầu tiên là 0, sẽ không có lần lặp thứ hai của vòng lặp và sum trở thành 0,0.

Bên ngoài vòng lặp, chúng tôi in giá trị của sum.

Learning English Everyday