Vòng lặp while
Thuộc phần Kiến thức nền tảng trong hành trình GDScript của Coddy. Bài học 44 trên 92.
Vòng lặp for chạy một lần với mỗi số trong một khoảng. Vòng lặp while tiếp tục chạy chừng nào điều kiện còn là true:
var count := 3
while count > 0:
print(count)
count -= 1
print("Go!")3
2
1
Go!Điều kiện được kiểm tra trước mỗi lần lặp. Khi count trở thành 0, count > 0 có giá trị false, nên vòng lặp dừng và chương trình tiếp tục chạy sau vòng lặp. Nếu điều kiện là false ngay từ đầu, khối lệnh sẽ không chạy.
Khối lệnh phải thay đổi một giá trị mà điều kiện phụ thuộc vào. Ở đây, count -= 1 đưa count đến gần 0 hơn. Nếu thiếu câu lệnh này, điều kiện sẽ luôn là true và vòng lặp sẽ không bao giờ kết thúc.
Dùng while khi bạn chưa biết trước cần bao nhiêu lần lặp. Ví dụ, đoạn code này tìm lũy thừa nhỏ nhất của 2 lớn hơn 27:
var number := 27
var power_of_two := 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)power_of_two tăng gấp đôi sau mỗi lần lặp: 2, 4, 8, 16, 32. Ở 32, power_of_two <= number là false, nên chương trình in ra 32.
Thử thách
DễChương trình đọc một số thập phân vào number.
Dùng vòng lặp while để chia number cho 2 chừng nào nó còn lớn hơn hoặc bằng 3.5. Sau đó in ra kết quả, tức là giá trị đầu tiên nhỏ hơn 3.5.
Ví dụ, với đầu vào 15, các giá trị là 15, 7.5, 3.75 và 1.875, nên chương trình in ra:
1.875Nếu đầu vào đã nhỏ hơn 3.5, hãy in ra giá trị đó mà không thay đổi. Không dùng vòng lặp for.
Tự làm thử
extends Node
func _ready():
var number := float(OS.read_string_from_stdin())
# Liên tục chia đôi number khi nó lớn hơn hoặc bằng 3.5, rồi in ra
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyênToán tử moduloPhép tính số học rút gọnÔn tập, phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Đầu raĐầu ra với biếnĐịnh dạng chuỗiĐầu vàoÉp kiểuÔn tập đến 120Ôn tập đúng hay sai10Hàm
Khai báo hàmĐối sốTrả vềKiểu trả vềÔn tập: hàm SigmaÔn tập: hàm kiểm tra hợp lệGiá trị mặc định16Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trình5Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử ba ngôi8Máy tính chia hóa đơn
Lời chàoNhận đầu vào3Biến, phần 2
Khai báo kiểu dữ liệuSuy luận kiểu dữ liệuHằng sốÔn tập: khởi tạo biếnChuyển đổi kiểu dữ liệu9Vòng lặp
Vòng lặp forVòng lặp whileBreakContinueÔn tập: giai thừaHàm rangeVòng lặp lồng nhauÔn tập: đầu vào độngTự luyện tập: Trình biên dịch GDScript online