Menu
Coddy logo textTech

Pętle zagnieżdżone

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 46 z 88.

Możesz umieścić pętlę wewnątrz innej pętli, aby utworzyć pętlę zagnieżdżoną. Pętla wewnętrzna wykonuje się w całości przy każdej iteracji pętli zewnętrznej, dzięki czemu ten wzorzec przydaje się podczas pracy z siatkami, tabelami lub kombinacjami.

for i in 1..2
  for j in 1..3
    puts "i=#{i}, j=#{j}"
  end
end

To wypisuje sześć wierszy. Dla każdej wartości i pętla wewnętrzna przechodzi przez wszystkie wartości j.

Najpierw i ma wartość 1, podczas gdy j przyjmuje kolejno wartości 1, 2, 3. Następnie i przyjmuje wartość 2, a j ponownie przyjmuje kolejno wartości 1, 2, 3.

Praktycznym przykładem jest utworzenie prostego wzoru mnożenia:

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

Wypisuje siatkę produktów 3x3. print utrzymuje wartości w tym samym wierszu, a puts "" przechodzi do nowego wiersza po zakończeniu każdego wiersza. Możesz też łączyć różne typy pętli, na przykład umieścić pętlę times wewnątrz pętli for.

challenge icon

Wyzwanie

Łatwy

Odczytaj z wejścia dwie liczby całkowite:

  1. rows — liczba wierszy
  2. cols — liczba kolumn

Użyj zagnieżdżonych pętli, aby wypisać prostokąt złożony z gwiazdek (*) o podanych wymiarach. Każdy wiersz powinien zawierać cols gwiazdek oddzielonych spacjami, a każdy wiersz powinien znaleźć się w osobnej linii.

Użyj print do wypisywania gwiazdek w wierszu, a puts, aby przejść do następnej linii po każdym wierszu.

Na przykład, jeśli dane wejściowe to 3 i 4, wynik powinien wyglądać następująco:

* * * *
* * * *
* * * *

Jeśli dane wejściowe to 2 i 5, wynik powinien wyglądać następująco:

* * * * *
* * * * *

Spróbuj swoich sił

# Odczytaj dane wejściowe
rows = gets.to_i
cols = gets.to_i

# TODO: Napisz swój kod poniżej
# Użyj zagnieżdżonych pętli, aby wypisać prostokąt z gwiazdek
# Użyj print do wypisywania gwiazdek w jednym wierszu, a puts do przejścia do następnego wiersza
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online