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