Tôi đang cố gắng giải quyết vấn đề Project Euler bằng Ruby, tôi đã sử dụng 4 phương thức lặp khác nhau, phương thức for-loop, times, range và upto. câu trả lời mong đợi, trong khi phương thức for-loop, range và upto thì không. Tôi giả định rằng họ có phần giống nhau, nhưng tôi phát hiện ra là không. Ai đó có thể vui lòng giải thích sự khác biệt giữa các phương pháp này?Sự khác biệt về vòng lặp trong Ruby khi sử dụng Range so với Times
Dưới đây là cấu trúc vòng lặp tôi đã sử dụng
# for-loop method
for n in 0..1
puts n
end
0
1
=> 0..1
# times method
2.times do |n|
puts n
end
0
1
=> 2
# range method
(0..1).each do |n|
puts n
end
0
1
=> 0..1
# upto method
0.upto(1) do |n|
puts n
end
0
1
=> 0
Nó không có vẻ như tôi đang hỏi về giá trị trả lại. – sepp2k
@ sepp2k: Tôi thấy rằng * đầu ra * của mỗi câu lệnh là '0 1', trong khi các giá trị trả về như được chỉ ra bởi' => 'có 3 giá trị khác nhau. Câu hỏi có thể đã được diễn đạt rõ ràng hơn, trong mọi trường hợp. –
Hm, có lẽ bạn đã đúng. – sepp2k