-
Đây là nơi ta vừa dừng lại ở trò chơi lật đồng xu.
-
Ta đã bắt đầu bằng cách tạo một số ngẫu nhiên trong khoảng từ 0 đến 1,
-
và sau đó làm tròn số đó đến số nguyên gần nhất.
-
Vậy, nó đã cho ta một số: 0 hoặc 1.
-
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.
-
Và đây là code thực hiện điều đó.
-
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.
-
Và sau đó ta kéo đồng xu xuống đây.
-
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.
-
Vậy, hãy thêm mặt thứ ba.
-
Ta sẽ bắt đầu bằng cách tạo một số trong khoảng từ 0 đến 2,
-
Để sau khi ta làm tròn số đó, nó sẽ cho một số nguyên: 0, 1 hoặc 2.
-
Nhưng nếu ta nhìn vào code vẽ, thì chỉ có 2 trường hợp ở đây.
-
Nếu số nguyên bằng 0, tô màu tím, nếu không, tô màu vàng.
-
Nhưng bây giờ, nếu khác 0 có thể là 1 hoặc 2.
-
Nhưng chờ đã, nếu làm điều tương tự như ta làm trước đây,
-
nhưng đặt bên trong khối else này thì sao? Vậy, ta viết:
-
nếu số này bằng 1 thì tô vàng, như trước,
-
nếu không, ta sẽ tô màu đỏ. Màu đỏ đẹp đấy.
-
Điều này có nghĩa là gì, nếu số nguyên bằng 0, tô màu tím,
-
nếu không, là 1, ta sẽ tô màu vàng;
-
còn nếu là 0, thì không phải 1, hẳn là 2, ta sẽ tô màu đỏ.
-
Tôi nhấn chạy lại nhiều lần. Nó chạy rồi! Woohoo!
-
Vậy, ta muốn thêm nhiều mặt cho đồng tiền,
-
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.
-
cho đến khi có các khối lồng nhau.
-
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!
-
Code phải dễ đọc và đẹp, không tệ nhất có thể.
-
Và đây là những gì ta sẽ làm:
-
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,
-
nghĩa là ta không làm gì khác bên ngoài những khối này,
-
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ả.
-
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.
-
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:
-
else if integer bằng 1, thì tô màu vàng.
-
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.
-
Tuyệt quá! Giờ điều này có nghĩa gì, nếu integer bằng 0, tô màu tím,
-
còn nếu bằng 1, thì tô màu vàng,
-
còn nếu cả hai đều sai, thì tô màu đỏ.
-
Nhấn chạy lại nhiều lần, ta có thể thấy nó vẫn chạy.
-
Tuyệt quá! Và điều thú vị là, ta có thể bao nhiêu khối else if tùy thích,
-
điều này giúp ta thực sự dễ dàng thêm nhiều mặt vào đồng xu.
-
Hãy làm điều đó ngay bây giờ. Ta sẽ tạo ra một số từ 0 đến 3,
-
và sau đó chỉ cần thêm một khối else nói rằng nếu integer bằng 2
-
ta sẽ tô màu ... cũng là màu đỏ trước để ta có thể giữ màu đỏ.
-
Và sau đó, khối else cuối cùng này dành cho khi integer bằng 3,
-
nó sẽ tô màu xanh dương. Tuyệt quá!
-
Đượ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,
-
và sau đó bạn có thể có bao nhiêu else-if tùy ý,
-
và sau đó cái cuối cùng này có hay không cũng được.
-
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,
-
nên không có khối nào trong số này được thực thi.
-
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.
-
Ngon chưa? Giờ nó không thực sự quan trọng việc bạn có if else-if else-if else,
-
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.
-
Và đó là do integer không thể bằng 0, và sau đó là 1, 2 hoặc 3.
-
Tuyệt quá. Vậy, những điều kiện này là để loại trừ lẫn nhau.
-
Chỉ một trong những khối này sẽ được chạy.
-
Nhưng không phải lúc nào cũng như vậy.
-
Đ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?
-
Vậy, tôi sẽ bỏ phần này, chỗ ta làm tròn,
-
và phần khác chỗ ta vẽ nó lên màn hình.
-
Và hãy tạo ra một số quy tắc mới cho trò chơi.
-
Tôi vẫn đang tạo một số từ 0 đến 3,
-
đặt thêm một số dấu tick vào số dòng.
-
Vậy, giải sử số rơi vào khoảng từ 0 đến 1, ta sẽ tô màu tím.
-
Ồ, nó không giống 'p' tí nào cả. Bạn hiểu ý tưởng rồi đấy. OK.
-
Và sau đó nếu từ 1 đến 2, ta có thể tô màu vàng.
-
Và nếu nó nằm trong khoảng từ 2 đến 3, ta sẽ tô màu đỏ.
-
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.
-
Vậy, tôi có thể bắt đầu bằng cách nói nếu number nhỏ hơn 1,
-
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,
-
tôi sẽ tô màu tím.
-
Mặt khác, nếu number nhỏ hơn 2, tôi có thể tô màu vàng. . . . 255. . .
-
Và nếu không, tôi sẽ tô màu đỏ.
-
Tuyệt quá! Và nó hoạt động đúng như mong muốn.
-
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.
-
Còn nếu nó lớn hơn hoặc bằng 1, nhưng nó cũng nhỏ hơn 2,
-
Vậy, nó nằm trong phạm vi này, ta sẽ tô màu vàng.
-
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 đó.
-
Và đây là trường hợp ta không thể nói nếu number nhỏ hơn 2,
-
và nếu number nhỏ hơn 3,
-
bởi vì nếu number nhỏ hơn 1, thì chắc chắn nó nhỏ hơn 2
-
và nó cũng sẽ nhỏ hơn 3.
-
Vậy, đồng xu của ta sẽ luôn luôn có màu đỏ sau cùng.
-
Và đó là lý do tại sao trong trường hợp này, else-if thật sự hữu ích.