Vòng lặp times
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 44 trên 88.
Ruby cung cấp một cách thanh lịch hơn để lặp lại code một số lần cụ thể. Vòng lặp times là cách tiếp cận đặc trưng của Ruby, gần như đọc lên giống tiếng Anh.
Thay vì thiết lập một phạm vi, bạn chỉ cần gọi times trên một số:
3.times do
puts "Hello!"
endCâu lệnh này in ra "Hello!" ba lần. Code bên trong khối lệnh do...end chạy đúng 3 lần. Cách này gọn hơn so với viết for i in 1..3 khi bạn không cần biến đếm.
Nhưng nếu bạn cần biết mình đang ở lần lặp thứ mấy thì sao? Vòng lặp times có thể cung cấp một chỉ số bắt đầu từ 0:
4.times do |i|
puts i
end
# Đầu ra: 0, 1, 2, 3Biến i nằm giữa hai dấu gạch đứng |i| nhận số lần lặp hiện tại. Lưu ý rằng biến này đếm từ 0, không phải 1. Điều này hữu ích khi bạn cần cả vòng lặp lẫn bộ đếm:
3.times do |num|
puts "Iteration #{num + 1}"
end
# Đầu ra: Iteration 1, Iteration 2, Iteration 3Vòng lặp times rất phù hợp khi bạn biết chính xác mình cần lặp lại bao nhiêu lần và muốn viết code rõ ràng, dễ đọc.
Thử thách
DễĐọc một số n từ đầu vào. Dùng vòng lặp times cùng với chỉ số của vòng lặp để in bảng nhân với số 2, hiển thị các tích từ 2 x 0 đến 2 x (n-1).
Mỗi dòng phải theo định dạng: 2 x [index] = [result]
Đầu vào sẽ là một số nguyên duy nhất, biểu thị số lần vòng lặp chạy.
Ví dụ, nếu đầu vào là 4, đầu ra sẽ là:
2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6Nếu đầu vào là 6, đầu ra sẽ là:
2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10Tự làm thử
# Đọc số lần lặp (iteration)
n = gets.to_i
# TODO: Viết code của bạn bên dưới
# Dùng vòng lặp (loop) times và chỉ số (index) của nó để in ra bảng nhân 2
# Định dạng: 2 x [index] = [result]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