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