Witam
Czemu wynikiem tego programu
1.upto(4) do |c|
1.upto(c-1) do |b|
puts "#{c}, #{b}"
end
end
jest
2, 1
3, 1
3, 2
4, 1
4, 2
4, 3
zamiast
1, 1
1, 2
1, 3
2, 1
2, 2
2, 3
3, 1
3, 2
3, 3
4, 1
4, 2
4, 3
?
Witam
Czemu wynikiem tego programu
1.upto(4) do |c|
1.upto(c-1) do |b|
puts "#{c}, #{b}"
end
end
jest
2, 1
3, 1
3, 2
4, 1
4, 2
4, 3
zamiast
1, 1
1, 2
1, 3
2, 1
2, 2
2, 3
3, 1
3, 2
3, 3
4, 1
4, 2
4, 3
?
Próbowałeś chociaż zastanowić się krok po kroku co tam się dzieje? Jak myślisz, ile razy wykona się 1.upto(0), gdzie 0 to c-1 dla c równego 1?
Ten przypadek nie jest odpowiednikiem dwóch zagnieżdżonych pętli for, tylko ten drugi zakres liczb jest dynamiczny na podstawie parametru c. Aby to Ci zadziałało, musisz mieć na sztywno wbite ramy, które chcesz przeglądać.
(1..4).each do |x|
(1..3).each do |y|
puts "#{x}, #{y}"
end
end