Mục lục bài viết

Giải sử, cần viết chương trình xuất các số từ 1 đến 10. Đơn giản là sử dụng 10 câu lệnh cout<<. Nhưng cần viết chương trình xuất các số từ 1 đến 1000. Sử dụng 1000 câu lệnh cout<< thì sẽ là một pha xử lý thật “cồng kềnh”.

Giải pháp là sử dụng cấu trúc lặp để thực hiện các công việc mang tính lặp lại khi thỏa mãn điều kiện nào đó. Có 3 lệnh lặp trong C++ là for, while, do…while. Bài này sẽ giới thiệu cách sử dụng vòng lặp while.

1. Cú pháp vòng lặp while

while (<điều kiện lặp>)
{
	//code block
}

với <điều kiện lặp> thường là biểu thức với các toán tử quan hệ, kết quả trả về là true (0) hoặc false (0).

Nguyên lý hoạt động của vòng lặp while như sau:

Kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì dòng lệnh trong while sẽ được thực thi.

Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp while sẽ chấm dứt.

Chương trình C++ in ra số từ 1 đến 5 sử dụng vòng lặp while

#include <iostream>
using namespace std;

int main()
{
	int i = 1;
	// while loop from 1 to 5
	while (i <= 5) {
		cout << i << " ";
		++i;
	}

	return 0;
}
Kết quả
1 2 3 4 5

Chương trình trên thực hiện các lần lặp trong while như sau:

Lần lặpBiến iĐiều kiện lặp i<=5Thực thi
1i=1trueIn ra 1 và tăng i lên 2
2i=2trueIn ra 2 và tăng i lên 3
3i=3trueIn ra 3 và tăng i lên 4
4i=4trueIn ra 4 và tăng i lên 5
5i=5trueIn ra 5 và tăng i lên 6
6i=6falseVòng lặp chấm dứt

2. Một số lưu ý khi sử dụng while

Câu lệnh while có thể lồng nhau

if (n < 10 && m < 20)
{
	while (n >= 1)
	{
		while (m >= 1)
		{
			cout<<m<<endl;
			m--;
		}
		n--;
	}
}

Câu lệnh while có thể không thực hiện lần nào do điều kiện lặp ngay từ lần đầu đã không thỏa mãn

int n = 1;
while (n > 10)
{
	cout<<n<<endl;
	n--;
}

Không được thêm “;” ngay sau lệnh while

int n = 0;
while (n < 10);//while sẽ không thực thi được
{
	cout<<n<<endl;
	n++;
}
while (n < 10)
{
};//while sẽ không thực thi được
{
	cout<<n<<endl;
	n++;
}

Câu lệnh while có thể bị lặp vô hạn

int n = 1;
while (n < 10)//n=1, n-- thì điều kiện lặp vô hạn
{
	cout<<n<<endl;
	n--;
}
n = 1;
while (n < 10){//n=1 thì điều kiện lặp vô hạn
	cout<<n<<endl;
}

Lưu ý: Khi sử dụng vòng lặp while phải tránh sai cú pháp và điều kiện lặp vô hạn.

Tác giả

HV Lee

500+ bài viết về lập trình, phần cứng, mạng máy tính và công nghệ. Chia sẻ kiến thức từ những gì đã học, đã dạy và đã trải nghiệm — để người học CNTT hiểu sâu hơn và làm được nhiều hơn.

Gợi ý tiếp theo

Sử dụng vòng lặp do while và sự khác nhau với while

Học tiếp