0:00:01.869,0:00:03.822 Đây là nơi ta vừa dừng lại ở trò chơi lật đồng xu. 0:00:03.822,0:00:06.597 Ta đã bắt đầu bằng cách tạo một số ngẫu nhiên trong khoảng từ 0 đến 1, 0:00:06.597,0:00:08.877 và sau đó làm tròn số đó đến số nguyên gần nhất. 0:00:08.877,0:00:12.214 Vậy, nó đã cho ta một số: 0 hoặc 1. 0:00:12.214,0:00:18.909 Sau đó ta đã minh họa đồng tiền thật bằng hình elip màu tím hoặc vàng, tùy thuộc vào giá trị nhận được. 0:00:18.909,0:00:20.987 Và đây là code thực hiện điều đó. 0:00:20.987,0:00:25.819 Ta đã nói nếu số nguyên bằng 0, viết code tô màu tím, nếu không, tô màu vàng. 0:00:25.819,0:00:27.917 Và sau đó ta kéo đồng xu xuống đây. 0:00:27.917,0:00:32.455 Nhưng giờ tôi đã quyết rằng thực sự đồng xu của chúng ta có 3 mặt. Đúng vậy, một đồng tiền 3 mặt. 0:00:32.455,0:00:34.190 Vậy, hãy thêm mặt thứ ba. 0:00:34.190,0:00:37.109 Ta sẽ bắt đầu bằng cách tạo một số trong khoảng từ 0 đến 2, 0:00:37.109,0:00:41.533 Để sau khi ta làm tròn số đó, nó sẽ cho một số nguyên: 0, 1 hoặc 2. 0:00:41.533,0:00:45.609 Nhưng nếu ta nhìn vào code vẽ, thì chỉ có 2 trường hợp ở đây. 0:00:45.609,0:00:48.815 Nếu số nguyên bằng 0, tô màu tím, nếu không, tô màu vàng. 0:00:48.815,0:00:51.885 Nhưng bây giờ, nếu khác 0 có thể là 1 hoặc 2. 0:00:51.885,0:00:54.931 Nhưng chờ đã, nếu làm điều tương tự như ta làm trước đây, 0:00:54.931,0:00:57.403 nhưng đặt bên trong khối else này thì sao? Vậy, ta viết: 0:00:57.403,0:01:04.933 nếu số này bằng 1 thì tô vàng, như trước, 0:01:04.933,0:01:11.403 nếu không, ta sẽ tô màu đỏ. Màu đỏ đẹp đấy. 0:01:11.403,0:01:15.478 Điều này có nghĩa là gì, nếu số nguyên bằng 0, tô màu tím, 0:01:15.478,0:01:18.984 nếu không, là 1, ta sẽ tô màu vàng; 0:01:18.984,0:01:24.611 còn nếu là 0, thì không phải 1, hẳn là 2, ta sẽ tô màu đỏ. 0:01:24.611,0:01:28.566 Tôi nhấn chạy lại nhiều lần. Nó chạy rồi! Woohoo! 0:01:28.566,0:01:31.536 Vậy, ta muốn thêm nhiều mặt cho đồng tiền, 0:01:31.536,0:01:37.987 Tôi có thể kéo lên đây, biến nó thành từ 0 đến 3, sau đó vào trong khối else này và thêm nhiều if-else nữa và cứ tiếp tục như thế, v.v. 0:01:37.987,0:01:40.158 cho đến khi có các khối lồng nhau. 0:01:40.158,0:01:44.704 Và sau đó tôi mới nhận ra rằng code này thật tệ! Ý tôi là nó thật thô thiển! 0:01:44.704,0:01:48.351 Code phải dễ đọc và đẹp, không tệ nhất có thể. 0:01:48.351,0:01:50.070 Và đây là những gì ta sẽ làm: 0:01:50.070,0:01:55.675 Bất cứ khi nào ta chỉ có một câu lệnh if hoặc câu lệnh if-else nằm trong một khối else, 0:01:55.675,0:01:58.313 nghĩa là ta không làm gì khác bên ngoài những khối này, 0:01:58.313,0:02:04.486 ta không thiết lập màu nét vẽ (stroke), cũng không có lệnh if, không gì nữa cả. 0:02:04.486,0:02:08.443 Tất cả những gì ta có là một câu lệnh if, có thể đi kèm một khối else. 0:02:08.443,0:02:13.156 Ta thực sự có thể kết hợp điều kiện này với dòng trước đó và viết: 0:02:13.156,0:02:17.073 else if integer bằng 1, thì tô màu vàng. 0:02:17.073,0:02:21.939 Và khối else cuối cùng không lồng vào bất cứ khối nào, chỉ nằm ở cuối mà thôi. 0:02:21.939,0:02:27.067 Tuyệt quá! Giờ điều này có nghĩa gì, nếu integer bằng 0, tô màu tím, 0:02:27.067,0:02:30.235 còn nếu bằng 1, thì tô màu vàng, 0:02:30.235,0:02:34.484 còn nếu cả hai đều sai, thì tô màu đỏ. 0:02:34.484,0:02:37.738 Nhấn chạy lại nhiều lần, ta có thể thấy nó vẫn chạy. 0:02:37.738,0:02:41.824 Tuyệt quá! Và điều thú vị là, ta có thể bao nhiêu khối else if tùy thích, 0:02:41.824,0:02:44.703 điều này giúp ta thực sự dễ dàng thêm nhiều mặt vào đồng xu. 0:02:44.703,0:02:48.009 Hãy làm điều đó ngay bây giờ. Ta sẽ tạo ra một số từ 0 đến 3, 0:02:48.009,0:02:56.058 và sau đó chỉ cần thêm một khối else nói rằng nếu integer bằng 2 0:02:56.135,0:02:59.658 ta sẽ tô màu ... cũng là màu đỏ trước để ta có thể giữ màu đỏ. 0:02:59.658,0:03:02.658 Và sau đó, khối else cuối cùng này dành cho khi integer bằng 3, 0:03:02.658,0:03:08.969 nó sẽ tô màu xanh dương. Tuyệt quá! 0:03:08.969,0:03:12.816 Được rồi. Vậy, để làm điều này, ta luôn phải bắt đầu bằng một câu lệnh if, 0:03:12.816,0:03:16.910 và sau đó bạn có thể có bao nhiêu else-if tùy ý, 0:03:16.910,0:03:18.698 và sau đó cái cuối cùng này có hay không cũng được. 0:03:18.698,0:03:21.900 Ta thực sự không nhất thiết cần nó, và sau đó có thể tất cả những điều kiện này sai, 0:03:21.900,0:03:23.722 nên không có khối nào trong số này được thực thi. 0:03:23.722,0:03:30.484 Nhưng miễn là ta có điều kiện ở đó, thì chính xác một trong những khối này sẽ được chạy. 0:03:30.484,0:03:37.017 Ngon chưa? Giờ nó không thực sự quan trọng việc bạn có if else-if else-if else, 0:03:37.017,0:03:45.509 hay chỉ sử dụng các câu lệnh if đơn giản cũ rích như ta có lúc đầu, vì vậy nếu integer bằng 3. 0:03:45.509,0:03:50.728 Và đó là do integer không thể bằng 0, và sau đó là 1, 2 hoặc 3. 0:03:50.728,0:03:54.223 Tuyệt quá. Vậy, những điều kiện này là để loại trừ lẫn nhau. 0:03:54.223,0:03:56.609 Chỉ một trong những khối này sẽ được chạy. 0:03:56.609,0:03:58.278 Nhưng không phải lúc nào cũng như vậy. 0:03:58.278,0:04:01.636 Điều gì sẽ xảy ra nếu ta cố gắng tạo ra một trò chơi như thế này mà không làm tròn thành số nguyên? 0:04:01.636,0:04:04.485 Vậy, tôi sẽ bỏ phần này, chỗ ta làm tròn, 0:04:04.485,0:04:06.640 và phần khác chỗ ta vẽ nó lên màn hình. 0:04:06.640,0:04:09.284 Và hãy tạo ra một số quy tắc mới cho trò chơi. 0:04:09.284,0:04:12.637 Tôi vẫn đang tạo một số từ 0 đến 3, 0:04:12.637,0:04:15.315 đặt thêm một số dấu tick vào số dòng. 0:04:15.315,0:04:23.378 Vậy, giải sử số rơi vào khoảng từ 0 đến 1, ta sẽ tô màu tím. 0:04:23.378,0:04:26.153 Ồ, nó không giống 'p' tí nào cả. Bạn hiểu ý tưởng rồi đấy. OK. 0:04:26.153,0:04:30.504 Và sau đó nếu từ 1 đến 2, ta có thể tô màu vàng. 0:04:30.504,0:04:35.533 Và nếu nó nằm trong khoảng từ 2 đến 3, ta sẽ tô màu đỏ. 0:04:35.533,0:04:38.651 Tuyệt quá. Vậy, hãy xem làm thế nào ta có thể làm điều đó với if và else-if. 0:04:38.651,0:04:43.542 Vậy, tôi có thể bắt đầu bằng cách nói nếu number nhỏ hơn 1, 0:04:43.542,0:04:51.436 nên nếu nó nhỏ hơn 1 và tôi biết nó nằm trong khoảng từ 0 đến 3, thì nó phải nằm trong phạm vi này, 0:04:51.436,0:04:54.156 tôi sẽ tô màu tím. 0:04:54.156,0:05:06.702 Mặt khác, nếu number nhỏ hơn 2, tôi có thể tô màu vàng. . . . 255. . . 0:05:06.702,0:05:13.263 Và nếu không, tôi sẽ tô màu đỏ. 0:05:13.263,0:05:15.596 Tuyệt quá! Và nó hoạt động đúng như mong muốn. 0:05:15.596,0:05:19.307 Vậy, nếu number nhỏ hơn 1, thì một lần nữa, nó nằm trong phạm vi này. 0:05:19.307,0:05:23.603 Còn nếu nó lớn hơn hoặc bằng 1, nhưng nó cũng nhỏ hơn 2, 0:05:23.603,0:05:26.732 Vậy, nó nằm trong phạm vi này, ta sẽ tô màu vàng. 0:05:26.732,0:05:31.900 Còn nếu nó phải lớn hơn hoặc bằng 2, thì nó sẽ nằm trong phạm vi đó. 0:05:31.900,0:05:36.277 Và đây là trường hợp ta không thể nói nếu number nhỏ hơn 2, 0:05:36.277,0:05:39.650 và nếu number nhỏ hơn 3, 0:05:39.650,0:05:42.932 bởi vì nếu number nhỏ hơn 1, thì chắc chắn nó nhỏ hơn 2 0:05:42.932,0:05:44.896 và nó cũng sẽ nhỏ hơn 3. 0:05:44.896,0:05:46.781 Vậy, đồng xu của ta sẽ luôn luôn có màu đỏ sau cùng. 0:05:46.781,0:00:00.000 Và đó là lý do tại sao trong trường hợp này, else-if thật sự hữu ích.