Vòng lặp until
Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 45 trên 88.
Vòng lặp until ngược lại với vòng lặp while. Thay vì chạy khi một điều kiện đúng, vòng lặp này chạy cho đến khi một điều kiện trở thành đúng. Hãy nghĩ đơn giản là “tiếp tục chạy cho đến khi điều này xảy ra”.
count = 1
until count > 3
puts count
count += 1
endLệnh này in ra 1, 2, 3. Vòng lặp tiếp tục chừng nào count > 3 còn là false. Khi count trở thành 4, điều kiện là true và vòng lặp dừng lại.
Hãy so sánh với vòng lặp while tương đương:
# Hai vòng lặp (loop) này hoạt động giống nhau:
while count <= 3 # chạy khi điều kiện này là TRUE
until count > 3 # chạy cho đến khi điều kiện này là TRUEVòng lặp until có thể giúp code của bạn dễ đọc hơn khi bạn chờ điều gì đó xảy ra. Đây là một ví dụ đếm ngược:
num = 5
until num == 0
puts num
num -= 1
end
puts "Liftoff!"Đoạn này đếm ngược từ 5 đến 1, sau đó in ra "Liftoff!" khi num đạt đến 0. Hãy chọn until khi từ khóa này giúp ý định của bạn rõ ràng hơn, đặc biệt là khi bạn đang chờ một điều kiện cụ thể xảy ra.
Thử thách
DễĐọc một số n từ đầu vào. Dùng vòng lặp until để in ra tất cả các số từ 1 đến n, mỗi số trên một dòng riêng. Sau khi đến n, in ra Done! trên một dòng mới.
Vòng lặp nên tiếp tục cho đến khi bộ đếm vượt quá n.
Đầu vào sẽ là một số nguyên duy nhất, biểu thị số mục tiêu.
Ví dụ: nếu đầu vào là 4, đầu ra sẽ là:
1
2
3
4
Done!Nếu đầu vào là 6, đầu ra sẽ là:
1
2
3
4
5
6
Done!Tự làm thử
# Đọc số cần đạt
n = gets.to_i
# Khởi tạo counter
counter = 1
# TODO: Viết code của bạn bên dưới
# Dùng vòng lặp (loop) until để in ra các số từ 1 đến n
# Vòng lặp tiếp tục cho đến khi counter vượt quá n
# In ra chính xác văn bản trong hướng dẫn sau vòng lặp
puts "Done!"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 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ử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online