0:00:01.410,0:00:02.832 Sau khi đã tìm hiểu về vòng lặp While, 0:00:02.832,0:00:04.311 chúng ta cùng bàn về một loại vòng lặp khác, 0:00:04.527,0:00:05.611 Vòng lặp For. 0:00:05.704,0:00:07.048 Đây là một vòng lặp For tôi đã tạo để đặt 0:00:07.048,0:00:08.844 loại pizza ngon nhất, 0:00:08.998,0:00:10.606 pizza dứa. 0:00:11.022,0:00:12.704 Có thể các bạn sẽ nghĩ, “Mình thích vòng lặp While 0:00:12.704,0:00:14.743 tại sao lại phải quan tâm đến vòng lặp khác?” 0:00:15.143,0:00:17.248 Rồi các bạn sẽ thấy rằng vòng lặp For là một cách 0:00:17.248,0:00:18.887 viết những vòng lặp While đơn giản, 0:00:19.057,0:00:20.380 theo con đường ngắn hơn. 0:00:21.074,0:00:22.389 Trước khi mổ xẻ vòng lặp For này 0:00:22.389,0:00:24.489 ta cùng quan sát một vòng lặp While, 0:00:24.582,0:00:25.991 các bạn sẽ thấy quen thuộc hơn một chút, 0:00:25.991,0:00:26.815 sau đó chúng ta sẽ quay lại 0:00:26.815,0:00:27.942 vòng lặp For này sau ít phút nữa. 0:00:28.559,0:00:31.035 Như các bạn đã biết trong bài Intro to While Loops 0:00:31.035,0:00:33.544 ta bắt đầu với biến y 0:00:33.544,0:00:36.507 và ta viết thông báo bằng vị trí y đó. 0:00:36.692,0:00:38.098 Ta muốn tiếp tục lặp 0:00:38.098,0:00:40.265 với điều kiện y nhỏ hơn 300, 0:00:40.374,0:00:42.787 và mỗi lần lặp tăng y theo 40 đơn vị. 0:00:42.787,0:00:44.562 Để củng cố thêm cho mỗi lần lặp, 0:00:44.562,0:00:46.754 và cũng là để xem lại nữa, 0:00:46.754,0:00:49.158 ta có thể coi “Pineapple pizza is the best” 0:00:49.158,0:00:50.324 là một thông báo quan trọng 0:00:50.324,0:00:52.025 vì vậy có thể ta sẽ muốn hiển thị nhiều hơn. 0:00:52.025,0:00:53.873 Có lẽ ta nên bắt đầu ở phía trên, 0:00:54.043,0:00:55.221 quyết định thế đi. 0:00:55.221,0:00:57.127 Ta nên chỉnh cho dòng chữ to hơn 0:00:57.127,0:00:58.333 để kéo dài được hơn nữa. 0:00:58.333,0:00:59.396 Các bạn có nghĩ dòng chữ 0:00:59.396,0:01:00.738 nên sát nhau hơn không? 0:01:01.276,0:01:03.168 Thế tốt hơn rồi đấy. 0:01:03.399,0:01:04.953 Bây giờ ta cùng tìm hiểu cách biến đổi 0:01:04.953,0:01:07.123 vòng lặp While này thành một vòng lặp For. 0:01:07.539,0:01:09.278 Tôi sẽ chú thích vòng lặp While này 0:01:09.278,0:01:11.059 để các bạn có thể thấy rằng vòng lặp For này 0:01:11.059,0:01:13.851 đang thực hiện những gì tôi ra lệnh. 0:01:14.051,0:01:17.445 Khi tạo vòng lặp For, 0:01:17.445,0:01:18.409 ta chỉ cần tạo một ít không gian 0:01:18.409,0:01:19.995 để nhập vào sau đó. 0:01:19.995,0:01:20.829 Một điều rất quan trọng, 0:01:20.829,0:01:22.315 và khác biệt đối với vòng lặp For, 0:01:22.315,0:01:23.569 đó là không chỉ có 1, 0:01:23.569,0:01:24.484 mà là 3 thứ 0:01:24.484,0:01:26.082 xuất hiện trong vòng lặp. 0:01:26.929,0:01:28.597 Ta lệnh cho máy tính bằng cách đặt 0:01:28.597,0:01:31.223 dấu chấm phẩy ngăn cách 3 phần này. 0:01:31.393,0:01:32.455 Ta sẽ có 1 phần ở đây, 0:01:32.455,0:01:34.065 1 phần ở đây, 1 phần ở đây, 0:01:34.065,0:01:35.472 rồi đưa chúng vào trong vòng lặp 0:01:35.472,0:01:37.105 như ta vẫn làm trong bài học trước. 0:01:37.521,0:01:39.199 Ta lại nhập những gì vào mỗi phần này? 0:01:39.323,0:01:40.339 Thử nghĩ xem, 0:01:40.339,0:01:42.945 khi sử dụng vòng lặp “For” tức là ta sẽ 0:01:42.945,0:01:46.474 có một dạng như bắt đầu hay khởi chạy. 0:01:46.474,0:01:47.754 Sau đó ta sẽ nhập dấu chấm phẩy. 0:01:47.754,0:01:49.030 Tiếp theo ta sẽ nhập kiểu như chỉ dẫn 0:01:49.030,0:01:50.704 nên lặp trong bao lâu, 0:01:52.088,0:01:53.285 sau đó ta có thể nhận thấy 0:01:53.577,0:01:55.556 sự thay đổi. 0:01:56.941,0:01:59.416 Điều đó thì liên quan gì tới vòng lặp While? 0:01:59.586,0:02:00.882 Ta có thể nói cụ thể rằng 0:02:00.882,0:02:03.988 phần khởi chạy sẽ thiết lập một biến y ở đây, 0:02:03.988,0:02:05.362 vậy nên ta sẽ sao chép và dán lên 0:02:06.315,0:02:08.817 phần đầu tiên của vòng lặp For. 0:02:08.940,0:02:11.430 Và tương tự nó xuất hiện đầu tiên thì sẽ hiển thị đầu tiên. 0:02:11.430,0:02:13.080 Ta có thể thấy rằng phần giữa này đang cho ta biết 0:02:13.080,0:02:15.503 ta nên lặp trong bao lâu. 0:02:15.503,0:02:17.185 Cái này cho vào giữa. 0:02:18.032,0:02:18.995 Sau đó ta sẽ có thay đổi 0:02:18.995,0:02:20.695 ở cuối chỗ này, 0:02:20.695,0:02:25.577 vì vậy ta sẽ đặt ở cuối vòng lặp For. 0:02:25.716,0:02:27.211 Ba phần này luôn luôn phải 0:02:27.211,0:02:28.685 diễn ra theo thứ tự này. 0:02:28.685,0:02:29.828 Trong vòng lặp For ta luôn luôn phải 0:02:29.828,0:02:32.221 bắt đầu với 0:02:32.221,0:02:33.959 “This is where this variable should start out as.” 0:02:33.959,0:02:34.876 Ở đây là 27. 0:02:34.876,0:02:36.650 Sau đó ta phải quyết định 0:02:36.650,0:02:37.855 thời gian lặp là bao lâu. 0:02:37.855,0:02:41.453 Lặp với điều kiện biến nhỏ hơn 354. 0:02:41.453,0:02:42.831 Sau đó ta phải quyết định 0:02:42.831,0:02:44.402 cách điều chỉnh thông báo. 0:02:44.402,0:02:45.729 Ở đây ta sẽ điều chỉnh 0:02:45.837,0:02:47.945 bằng cách tăng y theo 24 đơn vị. 0:02:48.715,0:02:50.338 Cuối cùng ta chỉ cần thực hiện những gì 0:02:50.338,0:02:52.477 ta muốn bên trong vòng lặp For. 0:02:52.507,0:02:54.394 Ta sẽ nhập văn bản vào đây. 0:02:54.394,0:02:55.241 Được rồi đó. 0:02:55.241,0:02:56.658 Pineapple pizza is the best! 0:02:56.905,0:02:58.399 Và rồi tất cả mọi người sẽ biết điều đó. 0:02:59.629,0:03:01.279 Ta cùng quan sát kỹ hơn 0:03:01.279,0:03:03.338 về những gì đang diễn ra trong vòng lặp For này. 0:03:03.338,0:03:05.200 Nếu ta muốn thay đổi vị trí bắt đầu 0:03:05.739,0:03:07.593 ta chỉ việc thay đổi khởi chạy ở đây. 0:03:07.593,0:03:09.555 Nếu ta muốn thay đổi vị trí kết thúc 0:03:09.555,0:03:11.062 ta sẽ thay đổi điểm kết thúc này. 0:03:11.139,0:03:12.669 Nếu ta muốn điều chỉnh cách dòng 0:03:12.669,0:03:16.250 ta chỉ cần thay đổi gia số. 0:03:16.943,0:03:19.365 Sau đó ta cũng có thể thay đổi, 0:03:19.365,0:03:20.604 giống như với vòng lặp While, 0:03:21.175,0:03:23.307 giá trị của x 0:03:23.369,0:03:24.697 khi nhập văn bản. 0:03:25.206,0:03:26.147 Tốt rồi! 0:03:28.671,0:03:29.916 Một điều ta hay nhầm lẫn 0:03:29.916,0:03:31.154 về vòng lặp For là 0:03:31.154,0:03:32.518 chức năng của những dấu chấm phẩy này. 0:03:32.765,0:03:34.115 Ta chỉ cần nhớ rằng chúng 0:03:34.115,0:03:35.122 luôn luôn ngăn cách 0:03:35.122,0:03:37.044 ba phần đã đề cập. 0:03:37.291,0:03:38.416 Nếu không 0:03:38.416,0:03:39.955 ta sẽ có những thông báo lỗi 0:03:39.955,0:03:42.195 kỳ cục về vòng lặp For, 0:03:42.195,0:03:44.105 vì vậy hãy đảm bảo 0:03:44.105,0:03:45.354 ta đã nhập dấu chấm phẩy trong vòng lặp. 0:03:45.354,0:03:46.972 Ta cũng có thể nhiệt tình hơn chút nữa 0:03:46.972,0:03:48.755 và thêm một dấu chấm phẩy ở cuối. 0:03:48.924,0:03:50.852 Nếu ta chỉ nhớ dấu chấm phẩy 0:03:50.852,0:03:53.082 chỉ có chức năng ngăn cách ba phần, 0:03:53.082,0:03:54.857 thì ta có thể coi 0:03:54.857,0:03:56.466 dấu chấm phẩy cuối cùng này chẳng có tác dụng gì cả. 0:03:56.466,0:03:58.554 Nó chỉ ở đó cho có thôi. 0:03:58.554,0:04:00.380 Ta có thể bỏ cũng được vì nó không cần thiết lắm. 0:04:01.641,0:04:02.828 Tôi biết các bạn đang 0:04:02.828,0:04:04.088 bắt đầu thấy mệt mỏi vì cứ phải 0:04:04.088,0:04:05.313 nhìn vòng lặp For chuyển thành 0:04:05.313,0:04:06.554 vòng lặp While rồi ngược lại. 0:04:06.554,0:04:08.264 Ta cùng làm thêm một lần nữa 0:04:08.264,0:04:09.738 để các bạn có thể thấy rằng vòng lặp For 0:04:09.738,0:04:11.402 thực chất chỉ là một cách viết khác 0:04:11.402,0:04:12.681 của một vòng lặp While đơn giản, 0:04:12.681,0:04:14.571 rồi các bạn sẽ cảm thấy rất rất tự tin 0:04:14.571,0:04:16.523 và hiểu được cách đưa 0:04:16.523,0:04:18.499 một vòng lặp For trở về vòng lặp While. 0:04:18.514,0:04:19.743 Bởi thật ra ta có thể thực hiện điều đó 0:04:19.743,0:04:21.122 đối với mọi loại vòng lặp For, 0:04:21.122,0:04:22.568 chứ không chỉ có vòng lặp này. 0:04:22.706,0:04:24.056 Trước hết ta phải nghĩ xem 0:04:24.056,0:04:26.584 nên đặt giá trị đầu tiên này ở đâu 0:04:26.584,0:04:28.496 bên trong vòng lặp For. 0:04:28.635,0:04:30.769 Vì thao tác đó chỉ khởi chạy biến này 0:04:30.769,0:04:32.281 nên đừng quên đưa nó ra bên ngoài, 0:04:32.281,0:04:33.789 chứ không phải bên trong vòng lặp While. 0:04:33.789,0:04:35.384 Và nên để xuất hiện trước 0:04:35.384,0:04:36.742 vì ta sẽ cần đến nó 0:04:36.742,0:04:38.298 khi chạy vòng lặp While. 0:04:38.298,0:04:38.884 Sau đó ta xét, 0:04:38.884,0:04:39.945 “Nên đặt điều kiện này ở đâu?” 0:04:39.945,0:04:41.260 Đơn giản thôi. 0:04:41.260,0:04:42.745 Hẳn các bạn còn nhớ 0:04:42.745,0:04:44.268 điều kiện dừng, 0:04:44.268,0:04:45.794 hay điều kiện repeat until, 0:04:45.794,0:04:47.219 thường phải được đưa vào trong đây. 0:04:47.219,0:04:49.108 Ta sẽ tiếp tục lặp 0:04:49.108,0:04:51.815 chừng nào y còn nhỏ hơn 313. 0:04:52.923,0:04:54.327 Và cuối cùng, là change. 0:04:54.327,0:04:55.786 Ta luôn luôn đặt change ở cuối 0:04:55.786,0:04:56.775 vòng lặp While trong những vòng lặp 0:04:56.775,0:04:57.494 mà ta từng thấy. 0:04:57.494,0:04:58.971 Chúng ta nên đặt nó ở đây. 0:05:00.201,0:05:02.003 Ta chỉ cần di chuyển lệnh gọi văn bản này 0:05:02.003,0:05:04.225 vào trong và thế là xong. 0:05:04.225,0:05:05.845 Ta có thể chú giải vòng lặp For này 0:05:05.937,0:05:07.431 và quan sát điều tương tự 0:05:07.431,0:05:10.053 diễn ra lần thứ hai. 0:05:11.115,0:05:13.665 Hy vọng đến thời điểm này các bạn đã nhận ra 0:05:13.665,0:05:15.620 thực chất vòng lặp For mới này không cần thiết. 0:05:15.744,0:05:18.072 Ta có thể ngẫm lại toàn bộ cuộc đời lập trình của mình 0:05:18.072,0:05:20.270 chỉ để viết những vòng lặp trông như thế này, 0:05:20.270,0:05:21.804 nhưng mức độ ngắn gọn của vòng lặp For này 0:05:21.804,0:05:23.815 cũng khá ấn tượng đấy chứ, 0:05:23.815,0:05:24.992 và khi đã quen với loại vòng lặp này 0:05:24.992,0:05:26.576 ta sẽ thấy mọi thứ trở nên dễ hiểu hơn. 0:05:26.576,0:05:27.685 Còn với cách 0:05:27.685,0:05:29.195 khởi tạo biến. 0:05:29.549,0:05:30.518 Ta đặt thời gian lặp 0:05:30.518,0:05:32.394 và sau đó thay đổi biến ở đây. 0:05:33.595,0:05:34.873 Nếu các bạn thực sự ghét vòng lặp For, 0:05:34.873,0:05:36.494 thì các bạn không cần phải sử dụng, 0:05:36.494,0:05:38.337 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. 0:05:38.337,0:05:39.920 Nếu chúng quá phức tạp hãy nhớ rằng 0:05:39.920,0:05:40.966 ta có thể biến đổi trở về 0:05:40.966,0:05:42.398 vòng lặp While như thế này. 0:05:42.952,0:05:44.646 Nếu bạn ưa mạo hiểm hãy thử sử dụng 0:05:44.646,0:05:46.192 vòng lặp For trong chương trình mới của mình, 0:05:46.192,0:05:47.660 hoặc xem lại một số chương trình cũ, 0:05:47.660,0:05:49.077 những vòng lặp While đơn giản và biến đổi chúng 0:05:49.077,0:05:51.259 thành vòng lặp For nếu thấy thích hợp. 0:05:51.766,0:05:54.750 Lưu ý cuối cùng, không phải lúc nào 0:05:54.750,0:05:56.594 ta cũng có thể biến đổi vòng lặp While thành vòng lặp For, 0:05:56.594,0:05:58.197 chỉ khi nào chúng có dạng cực kỳ đơn giản, 0:05:58.197,0:05:59.942 trong đó ta có thể thấy rõ 0:05:59.942,0:06:01.759 mình đang khởi tạo biến nào, 0:06:01.759,0:06:03.336 thời gian lặp là bao lâu, 0:06:03.336,0:00:00.000 và biến thay đổi như thế nào.