1 00:00:01,869 --> 00:00:03,822 Đây là nơi ta vừa dừng lại ở trò chơi lật đồng xu. 2 00:00:03,822 --> 00: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, 3 00:00:06,597 --> 00:00:08,877 và sau đó làm tròn số đó đến số nguyên gần nhất. 4 00:00:08,877 --> 00:00:12,214 Vậy, nó đã cho ta một số: 0 hoặc 1. 5 00:00:12,214 --> 00: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. 6 00:00:18,909 --> 00:00:20,987 Và đây là code thực hiện điều đó. 7 00:00:20,987 --> 00: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. 8 00:00:25,819 --> 00:00:27,917 Và sau đó ta kéo đồng xu xuống đây. 9 00:00:27,917 --> 00: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. 10 00:00:32,455 --> 00:00:34,190 Vậy, hãy thêm mặt thứ ba. 11 00:00:34,190 --> 00:00:37,109 Ta sẽ bắt đầu bằng cách tạo một số trong khoảng từ 0 đến 2, 12 00:00:37,109 --> 00:00:41,533 Để sau khi ta làm tròn số đó, nó sẽ cho một số nguyên: 0, 1 hoặc 2. 13 00:00:41,533 --> 00:00:45,609 Nhưng nếu ta nhìn vào code vẽ, thì chỉ có 2 trường hợp ở đây. 14 00:00:45,609 --> 00: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. 15 00:00:48,815 --> 00:00:51,885 Nhưng bây giờ, nếu khác 0 có thể là 1 hoặc 2. 16 00:00:51,885 --> 00:00:54,931 Nhưng chờ đã, nếu làm điều tương tự như ta làm trước đây, 17 00:00:54,931 --> 00:00:57,403 nhưng đặt bên trong khối else này thì sao? Vậy, ta viết: 18 00:00:57,403 --> 00:01:04,933 nếu số này bằng 1 thì tô vàng, như trước, 19 00:01:04,933 --> 00:01:11,403 nếu không, ta sẽ tô màu đỏ. Màu đỏ đẹp đấy. 20 00:01:11,403 --> 00: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, 21 00:01:15,478 --> 00:01:18,984 nếu không, là 1, ta sẽ tô màu vàng; 22 00:01:18,984 --> 00:01:24,611 còn nếu là 0, thì không phải 1, hẳn là 2, ta sẽ tô màu đỏ. 23 00:01:24,611 --> 00:01:28,566 Tôi nhấn chạy lại nhiều lần. Nó chạy rồi! Woohoo! 24 00:01:28,566 --> 00:01:31,536 Vậy, ta muốn thêm nhiều mặt cho đồng tiền, 25 00:01:31,536 --> 00: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. 26 00:01:37,987 --> 00:01:40,158 cho đến khi có các khối lồng nhau. 27 00:01:40,158 --> 00: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! 28 00:01:44,704 --> 00:01:48,351 Code phải dễ đọc và đẹp, không tệ nhất có thể. 29 00:01:48,351 --> 00:01:50,070 Và đây là những gì ta sẽ làm: 30 00:01:50,070 --> 00: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, 31 00:01:55,675 --> 00:01:58,313 nghĩa là ta không làm gì khác bên ngoài những khối này, 32 00:01:58,313 --> 00: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ả. 33 00:02:04,486 --> 00: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. 34 00:02:08,443 --> 00: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: 35 00:02:13,156 --> 00:02:17,073 else if integer bằng 1, thì tô màu vàng. 36 00:02:17,073 --> 00: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. 37 00:02:21,939 --> 00: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, 38 00:02:27,067 --> 00:02:30,235 còn nếu bằng 1, thì tô màu vàng, 39 00:02:30,235 --> 00:02:34,484 còn nếu cả hai đều sai, thì tô màu đỏ. 40 00:02:34,484 --> 00:02:37,738 Nhấn chạy lại nhiều lần, ta có thể thấy nó vẫn chạy. 41 00:02:37,738 --> 00: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, 42 00:02:41,824 --> 00: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. 43 00:02:44,703 --> 00: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, 44 00:02:48,009 --> 00: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 45 00:02:56,135 --> 00:02:59,658 ta sẽ tô màu ... cũng là màu đỏ trước để ta có thể giữ màu đỏ. 46 00:02:59,658 --> 00:03:02,658 Và sau đó, khối else cuối cùng này dành cho khi integer bằng 3, 47 00:03:02,658 --> 00:03:08,969 nó sẽ tô màu xanh dương. Tuyệt quá! 48 00:03:08,969 --> 00: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, 49 00:03:12,816 --> 00:03:16,910 và sau đó bạn có thể có bao nhiêu else-if tùy ý, 50 00:03:16,910 --> 00:03:18,698 và sau đó cái cuối cùng này có hay không cũng được. 51 00:03:18,698 --> 00: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, 52 00:03:21,900 --> 00:03:23,722 nên không có khối nào trong số này được thực thi. 53 00:03:23,722 --> 00: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. 54 00:03:30,484 --> 00: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, 55 00:03:37,017 --> 00: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. 56 00:03:45,509 --> 00:03:50,728 Và đó là do integer không thể bằng 0, và sau đó là 1, 2 hoặc 3. 57 00:03:50,728 --> 00:03:54,223 Tuyệt quá. Vậy, những điều kiện này là để loại trừ lẫn nhau. 58 00:03:54,223 --> 00:03:56,609 Chỉ một trong những khối này sẽ được chạy. 59 00:03:56,609 --> 00:03:58,278 Nhưng không phải lúc nào cũng như vậy. 60 00:03:58,278 --> 00: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? 61 00:04:01,636 --> 00:04:04,485 Vậy, tôi sẽ bỏ phần này, chỗ ta làm tròn, 62 00:04:04,485 --> 00:04:06,640 và phần khác chỗ ta vẽ nó lên màn hình. 63 00:04:06,640 --> 00:04:09,284 Và hãy tạo ra một số quy tắc mới cho trò chơi. 64 00:04:09,284 --> 00:04:12,637 Tôi vẫn đang tạo một số từ 0 đến 3, 65 00:04:12,637 --> 00:04:15,315 đặt thêm một số dấu tick vào số dòng. 66 00:04:15,315 --> 00: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. 67 00:04:23,378 --> 00:04:26,153 Ồ, nó không giống 'p' tí nào cả. Bạn hiểu ý tưởng rồi đấy. OK. 68 00:04:26,153 --> 00:04:30,504 Và sau đó nếu từ 1 đến 2, ta có thể tô màu vàng. 69 00:04:30,504 --> 00:04:35,533 Và nếu nó nằm trong khoảng từ 2 đến 3, ta sẽ tô màu đỏ. 70 00:04:35,533 --> 00: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. 71 00:04:38,651 --> 00: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, 72 00:04:43,542 --> 00: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, 73 00:04:51,436 --> 00:04:54,156 tôi sẽ tô màu tím. 74 00:04:54,156 --> 00:05:06,702 Mặt khác, nếu number nhỏ hơn 2, tôi có thể tô màu vàng. . . . 255. . . 75 00:05:06,702 --> 00:05:13,263 Và nếu không, tôi sẽ tô màu đỏ. 76 00:05:13,263 --> 00:05:15,596 Tuyệt quá! Và nó hoạt động đúng như mong muốn. 77 00:05:15,596 --> 00: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. 78 00:05:19,307 --> 00: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, 79 00:05:23,603 --> 00:05:26,732 Vậy, nó nằm trong phạm vi này, ta sẽ tô màu vàng. 80 00:05:26,732 --> 00: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 đó. 81 00:05:31,900 --> 00:05:36,277 Và đây là trường hợp ta không thể nói nếu number nhỏ hơn 2, 82 00:05:36,277 --> 00:05:39,650 và nếu number nhỏ hơn 3, 83 00:05:39,650 --> 00:05:42,932 bởi vì nếu number nhỏ hơn 1, thì chắc chắn nó nhỏ hơn 2 84 00:05:42,932 --> 00:05:44,896 và nó cũng sẽ nhỏ hơn 3. 85 00:05:44,896 --> 00:05:46,781 Vậy, đồng xu của ta sẽ luôn luôn có màu đỏ sau cùng. 86 00:05:46,781 --> 00: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.