Ruby wynik programu

0

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

?

1

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?

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1