Cấu trúc lặp WHILE (while statement)
Trong C++, 2 cấu trúc điều khiển tiêu biểu và hay sử dụng nhất là cấu trúc rẽ nhánh mà mình đã tìm hiểu ở các bài trước và cấu trúc lặp. Để bắt tay vào tìm hiểu cấu trúc lặp, chúng ta sẽ đi tìm hiểu về cấu trúc WHILE đầu tiên vì nó là dạng cấu trúc đơn giản nhất trong cấu trúc lặp mà C++ cung cấp và nó có định nghĩa rất giống với câu lệnh IF.
Đầu tiên hãy cùng xem qua cách hoạt động của lệnh while bằng mô hình dưới đây:
Cấu trúc cơ bản
Sau khi các bạn đã xem mô hình, hãy xem qua cấu trúc mã giả của nó:
Một câu lệnh while được khai báo bằng từ khóa while. Khi một câu lệnh while được thực thi, biểu thức điều kiện trong while sẽ được xem xét. Nếu biểu thức điều kiện là đúng (khác không), các câu lệnh trong while (statements) sẽ được thực thi. Tuy nhiên, không giống câu lệnh IF, một khi câu lệnh trong while đã thực thi xong, chương trình sẽ quay về đầu câu lệnh while và quá trình được lặp lại.
Hãy xem một ví dụ để rõ hơn về vòng lặp while:
Cùng xem kết quả chương trình:
Ở ví dụ trên, khi biến ChuSo không còn thỏa điều kiện (ChuSo < 5) nữa thì vòng lặp while mới kết thúc. Nên ta thấy khi số nhập vào là 6, chương trình in ra dòng “Ket thuc.”, tức là mệnh đề (ChuSo < 5) được xem xét là false, vòng lặp ngừng thực thi ngay sau đó.
Vòng lặp vô hạn (Infinite loops)
Mặt khác, nếu biểu thức điều kiện while luôn luôn đúng, vòng lặp while sẽ được thực thi mãi mãi. Đây được gọi là vòng lặp vô hạn. Ví dụ:
Chúng ta cũng có thể cố ý khai báo một vòng lặp vô hạn như sau:
→ Cách duy nhất để thoát khỏi một vòng lặp vô hạn là thông qua câu lệnh return, câu lệnh break, câu lệnh exit, câu lệnh goto, một ngoại lệ được ném hoặc người dùng dừng chương trình.
Loop variables
Thông thường, khi ta muốn vòng lặp thực hiện công việc một số lần nhất định, ta thường sử dụng một biến vòng lặp (loop variables), thường được gọi là bộ đếm. Biến vòng lặp là biến số nguyên được khai báo cho mục đích duy nhất là đếm số lần vòng lặp đã thực hiện. Các biến vòng lặp thường được đặt tên đơn giản, chẳng hạn như i, j hoặc k. Một ý tưởng tốt hơn nữa là sử dụng tên biến “thực”, chẳng hạn như đếm/count hoặc tên gợi nhớ chi tiết hơn về những gì bạn đang đếm. Ví dụ: Tính tổng các số từ 1 đến n với n nhập từ bàn phím.
Vòng lặp lồng nhau (Nested loops)
Tương tự như các cấu trúc khác, chúng ta có thể đặt các vòng lặp while bên trong các vòng lặp while khác. Xem ví dụ để hình dung rõ hơn:
Bài tập:
- Thay đổi ví dụ Nested loops để in ra kiểu dưới đây:
- Tính tổng các số chẵn từ 0 đến n (với n nhập từ bàn phím) và in kết quả ra màn hình.
Tổng kết
Chúng ta đã cùng nhau tìm hiểu về vòng lặp WHILE…Các bạn hãy luyện tập code lại các ví dụ trong bài để nắm và hiểu rõ hơn về cách hoạt động của nó nhé.😉 Các bạn hãy truy cập vào Series hướng dẫn lập trình C++ by TuiTuCode để học tiếp những bài thú vị khác nữa. Nếu có thắc mắc về bài học các bạn để lại bình luận bên dưới để được giải đáp ngay và đừng quên theo dõi page Tui Tự Code để cập nhật các bài viết mới. Pie~😘