C++ vòng lặp do…while với các ví dụ

Vòng lặp do-while là gì?

Vòng lặp do-while lặp lại một phần của C++ chương trình nhiều lần. Trong vòng lặp do-while, biểu thức kiểm tra được thêm vào cuối vòng lặp. Phần thân vòng lặp đứng trước biểu thức kiểm tra. Đó là lý do tại sao nội dung vòng lặp phải thực thi một lần, ngay cả khi biểu thức kiểm tra đánh giá là sai trong lần kiểm tra đầu tiên.

Khi nào nên sử dụng vòng lặp do-while?

Vòng lặp do-while nên được sử dụng khi số lần lặp không cố định và vòng lặp phải thực hiện ít nhất một lần. Các C++ trình biên dịch thực hiện phần thân vòng lặp trước khi đánh giá điều kiện. Điều đó có nghĩa là vòng lặp phải trả về kết quả. Trường hợp này xảy ra ngay cả khi điều kiện kiểm tra được đánh giá là sai trong lần đánh giá đầu tiên. Vì thân vòng lặp đã được thực thi nên nó phải trả về kết quả.

cú pháp

Cú pháp cơ bản của C++ vòng lặp do while như sau:

do{    
//code 
}while(condition);  

Điều kiện là biểu thức kiểm tra. Nó phải đúng thì vòng lặp mới được thực thi. { và } đánh dấu phần thân của vòng lặp do while. Nó đến trước điều kiện. Do đó, nó được thực hiện trước điều kiện.

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

Vòng lặp Do-while
C++ Biểu đồ quy trình làm trong khi

Giải thích biểu đồ dòng chảy:

  1. Bắt đầu vòng lặp do while.
  2. Phần thân của vòng lặp do while.
  3. Biểu thức hoặc điều kiện kiểm tra được đánh giá.
  4. Nếu biểu thức kiểm tra là đúng thì C++ trình biên dịch thực thi phần thân của vòng lặp do while.
  5. Nếu biểu thức kiểm tra là sai thì C++ trình biên dịch thực thi các câu lệnh sau thân vòng lặp.
  6. Các câu lệnh xuất hiện sau thân vòng lặp.

Ví dụ 1

#include <iostream>
using namespace std;
int main() {
	// Local variable 
	int x = 1;
	do {
		cout << "X is: " << x << endl;
		x = x + 1;
	} while (x < 5);
	return 0;
}

Đầu ra:

Vòng lặp Do-while

Đây là ảnh chụp màn hình của mã:

Vòng lặp Do-while

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng ta đọc và ghi vào bảng điều khiển.
  2. Bao gồm không gian tên std để sử dụng các lớp và hàm của nó mà không cần gọi nó.
  3. Gọi hàm main() để thêm logic của chương trình vào bên trong. Dấu { bắt đầu phần thân của hàm main().
  4. Một bình luận. các C++ trình biên dịch sẽ bỏ qua điều này.
  5. Khai báo một biến số nguyên x và gán cho nó giá trị 1.
  6. Tạo vòng lặp do-while. Dấu { bắt đầu thân vòng lặp.
  7. Để in giá trị của biến x cùng với văn bản khác trên bảng điều khiển. Cuối cùng là một C++ từ khóa có nghĩa là dòng cuối cùng.
  8. Tăng giá trị của x lên 1 sau mỗi lần lặp.
  9. Kết thúc thân vòng lặp. Biểu thức kiểm tra đã được thêm vào cuối thân vòng lặp. Nó kiểm tra xem giá trị của x có nhỏ hơn 5 hay không.
  10. Hàm main() sẽ trả về một giá trị nếu chương trình chạy tốt.
  11. Phần cuối của hàm main().

Ví dụ 2

#include <iostream>
using namespace std;
int main()
{
	int num, sum = 0;
	do {

		cout << "Enter a number: ";

		cin >> num;

		sum += num;

	} while (num != 0);
	cout << "Sum is " << sum;

	return 0;
}

Đầu ra:

Vòng lặp Do-while

Đây là ảnh chụp màn hình của mã:

Vòng lặp Do-while

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng ta đọc và ghi vào bảng điều khiển.
  2. Bao gồm không gian tên std để sử dụng các lớp và hàm của nó mà không cần gọi nó.
  3. Gọi hàm main() để thêm logic của chương trình vào bên trong.
  4. Dấu { bắt đầu phần thân của hàm main().
  5. Khai báo hai biến số nguyên, num và sum. Tổng biến đã được khởi tạo thành 0.
  6. Tạo vòng lặp do-while. Dấu { bắt đầu thân vòng lặp.
  7. In văn bản “Nhập số:” trên bảng điều khiển.
  8. Đọc dữ liệu đầu vào của người dùng từ bảng điều khiển và lưu trữ giá trị trong biến num. Cin (đầu vào bảng điều khiển) là một chức năng đọc đầu vào của người dùng.
  9. Cộng giá trị của num vào giá trị của tổng và lưu kết quả vào biến tổng.
  10. } đánh dấu sự kết thúc của thân vòng lặp. Biểu thức kiểm tra đã được thêm vào cuối thân vòng lặp. Nó kiểm tra xem giá trị được người dùng nhập có phải là 0 hay không. != không bằng toán tử. Nếu người dùng nhập số 0, vòng lặp sẽ kết thúc.
  11. In giá trị của tổng biến trên bảng điều khiển cùng với văn bản khác.
  12. Hàm main() sẽ trả về một giá trị nếu chương trình chạy tốt.
  13. Phần cuối của hàm main().

Vòng lặp Do While lồng nhau

In C++, chúng ta có thể tạo một vòng lặp do-while bên trong một vòng lặp do-toàn bộ khác. Điều này dẫn đến một vòng lặp do-while lồng nhau.

cú pháp

do{
statement(s)
do{
statement(s)
}while(condition);
statement(s)
}while(condition);

Câu lệnh do đầu tiên biểu thị phần do của vòng lặp do-while bên ngoài.

Câu lệnh do thứ hai biểu thị phần do của vòng lặp do-while bên trong.

Câu lệnh while đầu tiên biểu thị điều kiện kiểm tra cho vòng lặp bên trong.

Câu lệnh while thứ hai biểu thị điều kiện kiểm tra cho vòng lặp bên ngoài.

Vòng lặp while hoạt động như thế nào

Vòng lặp do while lồng nhau hoạt động như sau:

Bước 1: Việc khởi tạo được thực hiện đầu tiên và một lần.

Bước 2: Các câu lệnh (do) được thực thi một lần.

Bước 3: Biểu thức kiểm tra được đánh giá bằng điều khiển luồng.

Bước 4: Nếu đúng, vòng lặp bên trong sẽ được thực thi.

Bước 5: (Các) tuyên bố cập nhật được cập nhật.

Bước 6: Quá trình chạy lặp đi lặp lại cho đến khi biểu thức kiểm tra trở thành sai.

Bước 7: Khi biểu thức kiểm tra trở thành sai, vòng lặp bên trong sẽ thoát ra và điều khiển chuyển sang vòng lặp bên ngoài.

Bước 8: Điều kiện kiểm tra được đánh giá lại.

Bước 9: Nếu đúng, (các) câu lệnh được thực thi để trả về sai.

Bước 10: Việc thực hiện các điểm dừng vòng lặp và điều khiển nhảy tới các câu lệnh sau vòng lặp.

Ví dụ

#include <iostream>  
using namespace std;
int main() {
	int a = 1;
	do {
		int b = 1;
		do {
			cout << a << "\n";
			b++;
		} while (b <= 3);
		a++;
	} while (a <= 3);
}

Đầu ra:

Vòng lặp Do While lồng nhau

Đây là ảnh chụp màn hình của mã:

Vòng lặp Do While lồng nhau

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng ta đọc và ghi vào bảng điều khiển.
  2. Bao gồm không gian tên std để sử dụng các lớp và hàm của nó mà không cần gọi nó.
  3. Gọi hàm main() để thêm logic của chương trình vào bên trong. Dấu { bắt đầu phần thân của hàm main().
  4. Khai báo một biến số nguyên a và gán cho nó giá trị 1.
  5. Tạo vòng lặp do-while bên ngoài. Dấu { bắt đầu phần thân vòng lặp bên ngoài.
  6. Khai báo một biến số nguyên b và gán cho nó giá trị 1.
  7. Tạo vòng lặp do-while bên trong. Dấu { bắt đầu phần thân vòng lặp bên trong.
  8. Để in giá trị của biến a trên bàn điều khiển. “\n” là ký tự dòng mới di chuyển con trỏ chuột đến dòng tiếp theo.
  9. Tăng giá trị của b lên 1 sau mỗi lần lặp.
  10. Kết thúc thân vòng lặp bên trong. Biểu thức kiểm tra đã được thêm vào cuối thân vòng lặp. Nó kiểm tra xem giá trị của b có nhỏ hơn hoặc bằng 5 hay không.
  11. Tăng giá trị của a lên 1 sau mỗi lần lặp.
  12. Phần cuối của thân vòng ngoài. Biểu thức kiểm tra đã được thêm vào cuối thân vòng lặp. Nó kiểm tra xem giá trị của a có nhỏ hơn hoặc bằng 3 hay không.
  13. Phần cuối của hàm main().

Tổng kết

  • Vòng lặp do-while chạy một đoạn mã nhiều lần.
  • Nó nên được sử dụng khi số lần lặp không cố định.
  • Trong vòng lặp do-while, phần thân vòng lặp đứng trước biểu thức kiểm tra.
  • Phần thân vòng lặp thực thi ít nhất một lần, ngay cả khi biểu thức kiểm tra trở thành sai.
  • Vòng lặp này nên được sử dụng khi số lần lặp không cố định.
  • Vòng lặp Do while có thể chạy bao nhiêu lần cũng được, miễn là điều kiện đúng.
  • Điều kiện được đánh giá một lần sau mỗi lần lặp.
  • Kết quả của việc đánh giá điều kiện quyết định hành động cần thực hiện.
  • Nếu điều kiện đúng, vòng lặp sẽ thực thi phần thân.
  • Việc thực hiện vòng lặp dừng ngay lập tức khi điều kiện được đánh giá là sai.
  • Vì phần thân vòng lặp do while đã được thực thi nên nó phải trả về kết quả.