Menu
CoddyTech

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
end

Lệ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à TRUE

Vò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.

challenge icon

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!"
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Ruby online