Sau khi đã tìm hiểu về vòng lặp While, chúng ta cùng bàn về một loại vòng lặp khác, Vòng lặp For. Đây là một vòng lặp For tôi đã tạo để đặt loại pizza ngon nhất, pizza dứa. Có thể các bạn sẽ nghĩ, “Mình thích vòng lặp While tại sao lại phải quan tâm đến vòng lặp khác?” Rồi các bạn sẽ thấy rằng vòng lặp For là một cách viết những vòng lặp While đơn giản, theo con đường ngắn hơn. Trước khi mổ xẻ vòng lặp For này ta cùng quan sát một vòng lặp While, các bạn sẽ thấy quen thuộc hơn một chút, sau đó chúng ta sẽ quay lại vòng lặp For này sau ít phút nữa. Như các bạn đã biết trong bài Intro to While Loops ta bắt đầu với biến y và ta viết thông báo bằng vị trí y đó. Ta muốn tiếp tục lặp với điều kiện y nhỏ hơn 300, và mỗi lần lặp tăng y theo 40 đơn vị. Để củng cố thêm cho mỗi lần lặp, và cũng là để xem lại nữa, ta có thể coi “Pineapple pizza is the best” là một thông báo quan trọng vì vậy có thể ta sẽ muốn hiển thị nhiều hơn. Có lẽ ta nên bắt đầu ở phía trên, quyết định thế đi. Ta nên chỉnh cho dòng chữ to hơn để kéo dài được hơn nữa. Các bạn có nghĩ dòng chữ nên sát nhau hơn không? Thế tốt hơn rồi đấy. Bây giờ ta cùng tìm hiểu cách biến đổi vòng lặp While này thành một vòng lặp For. Tôi sẽ chú thích vòng lặp While này để các bạn có thể thấy rằng vòng lặp For này đang thực hiện những gì tôi ra lệnh. Khi tạo vòng lặp For, ta chỉ cần tạo một ít không gian để nhập vào sau đó. Một điều rất quan trọng, và khác biệt đối với vòng lặp For, đó là không chỉ có 1, mà là 3 thứ xuất hiện trong vòng lặp. Ta lệnh cho máy tính bằng cách đặt dấu chấm phẩy ngăn cách 3 phần này. Ta sẽ có 1 phần ở đây, 1 phần ở đây, 1 phần ở đây, rồi đưa chúng vào trong vòng lặp như ta vẫn làm trong bài học trước. Ta lại nhập những gì vào mỗi phần này? Thử nghĩ xem, khi sử dụng vòng lặp “For” tức là ta sẽ có một dạng như bắt đầu hay khởi chạy. Sau đó ta sẽ nhập dấu chấm phẩy. Tiếp theo ta sẽ nhập kiểu như chỉ dẫn nên lặp trong bao lâu, sau đó ta có thể nhận thấy sự thay đổi. Điều đó thì liên quan gì tới vòng lặp While? Ta có thể nói cụ thể rằng phần khởi chạy sẽ thiết lập một biến y ở đây, vậy nên ta sẽ sao chép và dán lên phần đầu tiên của vòng lặp For. Và tương tự nó xuất hiện đầu tiên thì sẽ hiển thị đầu tiên. Ta có thể thấy rằng phần giữa này đang cho ta biết ta nên lặp trong bao lâu. Cái này cho vào giữa. Sau đó ta sẽ có thay đổi ở cuối chỗ này, vì vậy ta sẽ đặt ở cuối vòng lặp For. Ba phần này luôn luôn phải diễn ra theo thứ tự này. Trong vòng lặp For ta luôn luôn phải bắt đầu với “This is where this variable should start out as.” Ở đây là 27. Sau đó ta phải quyết định thời gian lặp là bao lâu. Lặp với điều kiện biến nhỏ hơn 354. Sau đó ta phải quyết định cách điều chỉnh thông báo. Ở đây ta sẽ điều chỉnh bằng cách tăng y theo 24 đơn vị. Cuối cùng ta chỉ cần thực hiện những gì ta muốn bên trong vòng lặp For. Ta sẽ nhập văn bản vào đây. Được rồi đó. Pineapple pizza is the best! Và rồi tất cả mọi người sẽ biết điều đó. Ta cùng quan sát kỹ hơn về những gì đang diễn ra trong vòng lặp For này. Nếu ta muốn thay đổi vị trí bắt đầu ta chỉ việc thay đổi khởi chạy ở đây. Nếu ta muốn thay đổi vị trí kết thúc ta sẽ thay đổi điểm kết thúc này. Nếu ta muốn điều chỉnh cách dòng ta chỉ cần thay đổi gia số. Sau đó ta cũng có thể thay đổi, giống như với vòng lặp While, giá trị của x khi nhập văn bản. Tốt rồi! Một điều ta hay nhầm lẫn về vòng lặp For là chức năng của những dấu chấm phẩy này. Ta chỉ cần nhớ rằng chúng luôn luôn ngăn cách ba phần đã đề cập. Nếu không ta sẽ có những thông báo lỗi kỳ cục về vòng lặp For, vì vậy hãy đảm bảo ta đã nhập dấu chấm phẩy trong vòng lặp. Ta cũng có thể nhiệt tình hơn chút nữa và thêm một dấu chấm phẩy ở cuối. Nếu ta chỉ nhớ dấu chấm phẩy chỉ có chức năng ngăn cách ba phần, thì ta có thể coi dấu chấm phẩy cuối cùng này chẳng có tác dụng gì cả. Nó chỉ ở đó cho có thôi. Ta có thể bỏ cũng được vì nó không cần thiết lắm. Tôi biết các bạn đang bắt đầu thấy mệt mỏi vì cứ phải nhìn vòng lặp For chuyển thành vòng lặp While rồi ngược lại. Ta cùng làm thêm một lần nữa để các bạn có thể thấy rằng vòng lặp For thực chất chỉ là một cách viết khác của một vòng lặp While đơn giản, rồi các bạn sẽ cảm thấy rất rất tự tin và hiểu được cách đưa một vòng lặp For trở về vòng lặp While. Bởi thật ra ta có thể thực hiện điều đó đối với mọi loại vòng lặp For, chứ không chỉ có vòng lặp này. Trước hết ta phải nghĩ xem nên đặt giá trị đầu tiên này ở đâu bên trong vòng lặp For. Vì thao tác đó chỉ khởi chạy biến này nên đừng quên đưa nó ra bên ngoài, chứ không phải bên trong vòng lặp While. Và nên để xuất hiện trước vì ta sẽ cần đến nó khi chạy vòng lặp While. Sau đó ta xét, “Nên đặt điều kiện này ở đâu?” Đơn giản thôi. Hẳn các bạn còn nhớ điều kiện dừng, hay điều kiện repeat until, thường phải được đưa vào trong đây. Ta sẽ tiếp tục lặp chừng nào y còn nhỏ hơn 313. Và cuối cùng, là change. Ta luôn luôn đặt change ở cuối vòng lặp While trong những vòng lặp mà ta từng thấy. Chúng ta nên đặt nó ở đây. Ta chỉ cần di chuyển lệnh gọi văn bản này vào trong và thế là xong. Ta có thể chú giải vòng lặp For này và quan sát điều tương tự diễn ra lần thứ hai. Hy vọng đến thời điểm này các bạn đã nhận ra thực chất vòng lặp For mới này không cần thiết. Ta có thể ngẫm lại toàn bộ cuộc đời lập trình của mình chỉ để viết những vòng lặp trông như thế này, nhưng mức độ ngắn gọn của vòng lặp For này cũng khá ấn tượng đấy chứ, và khi đã quen với loại vòng lặp này ta sẽ thấy mọi thứ trở nên dễ hiểu hơn. Còn với cách khởi tạo biến. Ta đặt thời gian lặp và sau đó thay đổi biến ở đây. Nếu các bạn thực sự ghét vòng lặp For, thì các bạn không cần phải sử dụng, nhưng các bạn nên làm quen với việc thường xuyên nhìn thấy chúng. Nếu chúng quá phức tạp hãy nhớ rằng ta có thể biến đổi trở về vòng lặp While như thế này. Nếu bạn ưa mạo hiểm hãy thử sử dụng vòng lặp For trong chương trình mới của mình, hoặc xem lại một số chương trình cũ, những vòng lặp While đơn giản và biến đổi chúng thành vòng lặp For nếu thấy thích hợp. Lưu ý cuối cùng, không phải lúc nào ta cũng có thể biến đổi vòng lặp While thành vòng lặp For, chỉ khi nào chúng có dạng cực kỳ đơn giản, trong đó ta có thể thấy rõ mình đang khởi tạo biến nào, thời gian lặp là bao lâu, và biến thay đổi như thế nào.