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
endTo 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 ""
endWypisuje 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.
Wyzwanie
ŁatwyOdczytaj z wejścia dwie liczby całkowite:
rows— liczba wierszycols— 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 wierszaTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałszPoćwicz samodzielnie: Kompilator Ruby online