Giới thiệu
Bạn đã từng nghe về cấu trúc lặp While trong ngôn ngữ lập trình c ++ chưa? Trong bài học này, chúng ta sẽ khám phá về vòng lặp while trong c++ , một cấu trúc đơn giản nhưng hết sức hữu ích.
Tổng quan về cấu trúc vòng lặp
Trước khi đi sâu vào vòng lặp While, hãy cùng tìm hiểu về cấu trúc vòng lặp nói chung. trong lập trình , chúng ta thường gặp các tình huống mà các đoạn mã code cần được lặp đi lặp lại nhiều lần. Ví dụ, bạn muốn in ra các số từ 1 đến 10, hoặc từ 1 đến 1000. Nếu viết các dòng lệnh in số lượng lớn như vậy thì rất mất thời gian và công sức. Đây là lúc vòng lặp xuất hiện để giúp chúng ta thực hiện công việc lặp đi lặp lại một cách dễ dàng.
Trong C++, chúng ta có 4 loại vòng lặp, đó là: While, Do-While, For và For Each (C++11). Trong bài học này, chúng ta sẽ tập trung vào vòng lặp While.
Vòng lặp While (Câu lệnh While)
Vòng lặp While là cấu trúc lặp đơn giản nhất trong bốn cấu trúc lặp mà C++ cung cấp. Nó có cú pháp giống với câu lệnh if. Qua đó, các câu lệnh bên trong vòng lặp While sẽ được thực thi nếu biểu thức điều kiện là true.
Cú pháp của vòng lặp While như sau:
while (expression) { statements; }
Trong đó, expression là một biểu thức có giá trị true hoặc false. Nếu biểu thức này là true, thì các câu lệnh bên trong khối lệnh sẽ được thực thi. Nếu vòng lặp chứa nhiều câu lệnh, bạn cần đặt chúng trong một khối ngoặc nhọn {}.
Ví dụ: Chương trình yêu cầu in ra các số từ 1 đến 1000.
#include using namespace std; int main() { int count(1); while (count <= 1000) { cout << count << " "; ++count; } cout << "done!" << endl; return 0; }
Kết quả: 1 2 3 ... 1000 done!
Trong ví dụ trên, chúng ta không cần phải viết 1000 lần lệnh cout một cách thủ công. Vòng lặp While sẽ kết thúc khi biểu thức count <= 1000 không còn đúng nữa.
Ngoài ra, một vòng lặp có thể không được thực hiện bất kỳ lần nào, nếu biểu thức điều kiện sai từ đầu.
#include using namespace std; int main() { int count(1000); while (count <= 10) { cout << count << " "; ++count; } cout << "done!" << endl; return 0; }
Vòng lặp vô hạn (Infinite loops)
Nếu biểu thức điều kiện luôn đúng, vòng lặp While sẽ thực hiện mãi mãi. Đây được gọi là một vòng lặp vô hạn.
Ví dụ:
#include using namespace std; int main() { int count(1); while (count < 10) // điều kiện luôn đúng vì count luôn = 1 { cout << count << " "; } // dòng lệnh này không bao giờ được thực thi return 0; }
Trong ví dụ trên, biến count không bao giờ thay đổi giá trị, nên biểu thức count < 10 luôn đúng. Vì vậy, vòng lặp sẽ lặp mãi mãi.
Bạn cũng có thể cố ý tạo ra một vòng lặp vô hạn:
while (1) { // vòng lặp này sẽ lặp mãi mãi // Có thể thoát khỏi vòng lặp bằng cách: // return, break, exit(), goto, throw hoặc bạn tự tắt chương trình }
Cách duy nhất để thoát khỏi một vòng lặp vô hạn là sử dụng một trong những từ khóa: return, break, exit(), goto, throw hoặc tự tắt chương trình.
Biến vòng lặp (Loop variables)
Thông thường, người ta thường sử dụng một biến vòng lặp để giới hạn số lần lặp của vòng lặp. Biến vòng lặp là một biến số nguyên chỉ để đếm số lần lặp đã thực hiện. Trong các ví dụ trên, biến count chính là biến vòng lặp.
Nguyên tắc: Không sử dụng kiểu số nguyên không dấu (unsigned) cho các biến vòng lặp.
Ví dụ:
#include using namespace std; int main() { unsigned int count = 10; // Đếm từ 10 xuống 0 while (count >= 0) { cout << count << " "; --count; } return 0; }
Kết quả: 10 9 8 7 6 5 4 3 2 1 0 4294967295 4294967294 ...
Trong ví dụ trên, biến count có kiểu dữ liệu unsigned int, nên không thể có giá trị âm. Vì vậy, vòng lặp sẽ không bao giờ chấm dứt. Nếu giá trị của count = 0, khi giảm đi 1 sẽ tràn số và quay lại 4294967295, suy ra điều kiện lặp count >= 0 luôn luôn đúng.
Các biến vòng lặp thường được đặt tên đơn giản như i, j, k, iii, jjj, kkk, ... Nhưng để dễ phân biệt hơn, bạn nên đặt cho chúng những tên có ý nghĩa tương ứng với công việc mà vòng lặp đang thực hiện.
Vòng lặp lồng nhau (Nested loops)
Một vòng lặp While có thể lồng vào một vòng lặp khác. Hãy xem ví dụ sau:
#include using namespace std; int main() { // Loop between 1 and 5 int outer(1); while (outer <= 5) { // Loop between 1 and outer int inner(1); while (inner <= outer) { cout << inner << " "; ++inner; } // In ra một dòng mới khi kết thúc mỗi hàng cout << endl; ++outer; } return 0; }
Kết quả:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Kết luận
Qua bài học này, chúng ta đã nắm rõ về cấu trúc vòng lặp While trong ngôn ngữ lập trình c ++. Vòng lặp While là một cấu trúc đơn giản, dễ sử dụng mà chúng ta thường sử dụng khi số lần lặp lại của một công việc là chưa biết trước.
Trong bài tiếp theo, chúng ta sẽ khám phá vòng lặp thứ hai trong C++, đó là vòng lặp Do-While.
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để chúng ta cùng phát triển bài viết tốt hơn. Đừng quên "Luyện tập - Thử thách - Không ngại khó".
Tài liệu
Nếu bạn cần tài liệu chi tiết về Vòng lặp While trong C++, bạn có thể tải về dưới dạng file PDF tại đây.
Ngoài ra, bạn cũng có thể tìm thấy nhiều tài liệu hữu ích khác trên thư viện Howkteam.com.
Ảnh
Thảo luận
Nếu bạn có bất kỳ khó khăn hoặc thắc mắc nào về khóa học, đừng ngần ngại đặt câu hỏi trong phần bình luận bên dưới hoặc trong mục hỏi và đáp trên thư viện Howkteam.com. Chúng tôi luôn sẵn lòng hỗ trợ bạn.