-
Chúng ta cùng tìm hiểu về các vòng lặp nhé. Ta có một vòng lặp while ở đây. Chỉ với một vài dòng mã, ta có thể viết rất nhiều thông điệp dọc theo màn hình.
-
Nếu ta thay đổi nội dung của một thông điệp,
-
thì tất cả các thông điệp khác cũng thay đổi.
-
Vòng lặp này hoạt động như thế nào?
Ta có thể quay lại mã này sau.
-
Trước tiên, ta cần suy nghĩ xem
cách tạo ra chương trình này
-
chỉ với những gì ta biết mà
không sử dụng vòng lặp.
-
Để làm điều đó, có vẻ như ta sẽ chỉ
viết đi viết lại rất nhiều văn bản.
-
Ta nhập lệnh "text", sau đó là biến "message" ta đã tạo
ở trên và bây giờ ta chỉ cần lặp lại
-
để các thông điệp trải dài
đến cuối khung kết quả.
-
Làm như vậy rất mất công.
-
Khoảng cách đến cuối bảng vẽ còn rất nhiều và còn tệ hơn
-
nếu ta phát hiện ra lỗi sai trong các tham số,
ví dụ như đây không phải 70
-
mà phải là 60. Lỗi này ảnh
hưởng cả lệnh bên dưới
-
và các lệnh khác nữa.
-
Cách làm này sẽ mất nhiều thời gian hơn.
-
Đây quả là một vấn đề nan giải
và thật may mắn là ta có công cụ vòng lặp.
-
Từ giờ trở đi, mỗi khi gặp các mã lặp lại như vậy,
-
Hãy nghĩ ngay đến vòng lặp. Vòng lặp sẽ giúp ta
-
lặp đi lặp lại các mã và ta chỉ
cần sửa một chút ở các dòng lệnh.
-
Sau đây là cách sử dụng vòng lặp để viết lại mã này. Đầu tiên, ta nhập "while"
-
sau đó là dấu ngoặc đơn và dấu ngoặc nhọn. Người bạn của chúng ta hiện lên với một thông điệp
-
bởi vì ta chưa hoàn thành dòng mã này. Đừng lo, người bạn ấy sẽ biến mất khi ta hoàn thành.
-
Mỗi khi viết một vòng lặp, bạn
cần trả lời được 3 câu hỏi quan trọng:
-
3 câu hỏi đó là
-
"Bạn muốn lặp lại cái gì?"
-
Thông điệp mà ta cần lặp lại phải
được viết bên trong dấu ngoặc nhọn.
-
Trong trường hợp này, ta muốn lặp lại lệnh "text" nên ta sẽ dán lệnh đó vào trong dấu ngoặc nhọn.
-
Nhìn nó hơi kỳ cục. Bởi vì chúng ta chỉ đang
-
lặp đi lặp lại cùng một lệnh "text".
-
Ta cần phải thay đổi một thứ gì đó. Vì vậy, ta có câu hỏi thứ hai là "Bạn muốn thay đổi điều gì ở mỗi lần lặp lại?"
-
Ta muốn thay đổi tọa độ y thành 60
-
và sau đó là 80. Thay vào đó,
ta sẽ biến nó thành một biến.
-
Gọi biến đó là Y vì nó đại diện cho tọa độ y. Ta sẽ khai báo biến này
-
ở bên trên lệnh "while". Giá trị đầu tiên là 40.
-
Bây giờ, ta chỉ cần thay đổi giá trị của biến y thành y bằng y cộng 20.
-
Các giá trị sau sẽ lớn hơn.
-
Ta có thể áp dụng bài học
về các phím tắt tăng ở đây.
-
Ta chỉ cần dùng phím tắt ở đây. Vậy là ta đã trả lời xong hai câu hỏi.
-
Bây giờ, ta cần trả lời câu hỏi thứ ba:
"Các thông điệp cần lặp lại trong bao lâu?"
-
Ta không hề muốn các thông
điệp này lặp lại vô hạn.
-
Bởi vì nếu làm vậy, thứ nhất là sẽ mất rất nhiều thời gian và thứ hai là trình duyệt có thể sập.
-
Nhưng mong là nó sẽ không sập.
-
Ta chỉ muốn lặp lại các thông
điệp này tới cuối khung kết quả.
-
Tức là ta sẽ lặp lại các thông điệp miễn là y nhỏ hơn 400.
-
Ta nhập "y nhỏ hơn 400" vào lệnh "while và các lệnh đã được lặp lại tới cuối khung kết quả.
-
Có thể thấy, cách làm này đơn giản hơn cách làm trước đó,
-
cách làm trước mất nhiều thời gian để viết mã hơn mà mãi vẫn chưa hoàn thành thông điệp.
-
Ta xóa các lệnh trước đó đi và ta đã hoàn thành chương trình.
-
Bây giờ, ta sẽ tìm hiểu
kỹ hơn về vòng lặp.
-
Để làm điều đó, ta sẽ in y ra mỗi lần điều kiện thỏa mãn.
Ta có thông điệp là "y is now"
-
Ở lệnh "text", ta gắn y vào "message"
để thấy các giá trị của biến y.
-
Các giá trị đang tăng
lên 20 đơn vị.
-
Ta có thể thay đổi điều này bằng
cách thay đổi biến y ở dưới.
-
Ta sẽ sửa thành 50.
Bây giờ, các giá trị sẽ tăng 50 đơn vị.
-
Ta có thể thay đổi giá trị của biến y tùy thích.
-
Việc thay đổi điều kiện của lệnh "while" sẽ ảnh hưởng đến việc chương trình dừng lại ở đâu.
-
Để hiểu kỹ hơn, ta hãy liên tưởng tới câu lệnh "if".
-
Coi điều kiện này là biểu thức
Boolean mà ta đã học.
-
Sau đó, ta tạo phần thân của lệnh "if".
-
Lệnh text chỉ xảy ra khi giá trị
của biểu thức Boolean là "true".
-
Còn nếu không, ta sẽ chuyển luôn sang phần cuối cùng.
-
Một điều thú vị là trong vòng lặp while, ta có một câu lệnh đó là "go back to the start of the loop" ở cuối.
-
Câu lệnh này nghĩa là thay
vì dừng lại và để vòng lặp tiếp tục,
-
giống như lệnh "if" thì mỗi khi tạo thân
của vòng lặp ta sẽ quay lại và kiểm tra xem
-
liệu điều kiện vẫn
đang thỏa mãn hay không.
-
Nếu điều kiện vẫn thoả mãn
thì ta sẽ lặp lại một lần nữa
-
và ở lần lặp lại thứ hai,
ta vẫn làm tương tự.
-
Ta sẽ quay lại và kiểm tra xem liệu
y vẫn nhỏ hơn 279 hay không.
-
Nếu có thì ta sẽ lặp lại các lệnh
một lần nữa và tiếp tục kiểm tra điều kiện.
-
Nếu không thì ta quay lại điều kiện
của lệnh "while" và vòng lặp sẽ dừng lại.
-
Ta sẽ tiếp tục lập trình
chương trình của mình.
-
Có nhiều cách thú vị hơn để sử dụng
vòng lặp và ta sẽ sớm tìm hiểu.
-
Nhưng hiện tại, chúng ta đã
có một khởi đầu tuyệt vời về vòng lặp.