Cấu trúc vòng lặp for

Vòng lặp while thì phải cần một điều kiện để thực hiện hoặc kết thúc vòng lặp. Mà có khi ta chỉ muốn khối lệnh đó lặp n lần nhất định, thì việc đơn giản là tạo một cái biến đếm và thay đổi n lần.

Vì vậy, vòng lặp for chính giúp chúng ta tạo những vòng lặp n lần nhất định bằng một biến chạy. Vòng lặp For có thể giúp ta giải phóng bộ nhớ biến chạy.

Cú pháp:

for (<khởi tạo biến chạy>;<biểu thức điều kiện>;<thay đổi biến chạy>) {

<khối lệnh lặp lại>

}

Câu lệnh for sẽ lặp các_câu_lệnh bên trong nó dựa trên việc kiểm tra 3 thành phần truyền vào, các thành phần này được phân cách bởi các dấu ;

Trong đó:

– <khởi tạo biến chạy>: cũng giống như bạn khai báo biến và khởi tạo (gán cho nó một giá trị ban đầu cho biến).

– <biểu thức điều kiện>: là điều kiện đặt ra cho vòng lặp kiểm tra xem có nên lặp tiếp một vòng các_câu_lệnh nữa hay không.

– <thay đổi biến chạy> giúp thay đổi giá trị của biến_đếm mỗi khi các_câu_lệnh được thực hiện xong một lần lặp, tại sao? Vì cũng giống như các câu lệnh lặp trên đây, nếu không có việc điều chỉnh lại biến đếm, thì các biến đếm sẽ không bao giờ bị thay đổi giá trị, và điều_kiện_lặp sẽ luôn luôn trả về cùng một giá trị, và vì vậy vòng lặp có thể sẽ bị lặp vô tận, hoặc sẽ không thực hiện bất kỳ lần lặp nào.

Nguyên lý:

Đầu tiên thực hiện <khởi tạo biến chạy>, tiếp theo kiểm tra <biểu thức điều kiện> nếu biểu thức sai thì thoát khỏi vòng lặp, nếu đúng thì thực hiện <khối lệnh ><thay đổi biến chạy>, quay lại kiểm tra <biểu thức điều kiện>.

Ví dụ: Tính tổng s = 1+ 2 + 3 + 4 + 5

Lưu ý: Kết thúc vòng lặp biến chạy tự giải phóng

* Nếu ta khai báo biến chạy trong biểu thức khởi tạo vòng lặp thì sau khi kết thúc, biến chạy tự giải phóng.

Ví dụ:

* Nếu ta khai báo i bên ngoài thì kết thúc vòng lặp thì biến không giải phóng.

Ví dụ:

Nhưng nếu ta khai báo i bên trong, thì sau khi kết thúc sẽ tự giải phóng. Nó giúp ta tiết kiệm bộ nhớ đồng thời sẽ không nhầm lẫn nếu ta sử dụng biến i trong nhiều vòng lặp.

Lưu ý: Câu lệnh lặp for vô tận

Việc thay đổi biến chạy có thể dừng vòng lặp

Vì sau mỗi lần thay đổi biến chạy sẽ thực hiện lại. Ta phải đảm bảo rằng sẽ đến một lúc biến chạy đáp ứng được điều kiện dừng vòng lặp

Ví dụ:

Ta sẽ thấy giá trị i sẽ không bao giờ lớn hơn 5, đồng nghĩa vòng lặp này vô tận.

* Ta có thể sử dụng vòng lặp For vô tận với vài cách như sau, tất nhiên việc ứng dụng của nó cũng khá ít:

* Vòng lặp for gán nhãn

Chúng ta có để đặt tên cho mỗi vòng lặp for bằng cách gán nhãn trước vòng lặp for. Điều này rất hữu dụng khi chúng ta muốn thoát/tiếp tục (break/continues) chạy vòng lặp for.

Cú pháp:

<tên nhãn>: for (<khởi tạo biến chạy>;<biểu thức điều kiện>;<thay đổi biến chạy>) {

<khối lệnh lặp lại>

}