Menu
CoddyTech

Pętla zagnieżdżona

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 49 z 86.

Pętla zagnieżdżona to po prostu pętla wewnątrz innej pętli. Pętla wewnętrzna wykonuje wszystkie swoje iteracje dla każdej pojedynczej iteracji pętli zewnętrznej.

let rows = 3
let cols = 2
for row in 1...rows {
    for col in 1...cols {
        print("Row \(row), Col \(col)")
    }
}
// Wynik:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Dla każdej wartości row pętla wewnętrzna rozpoczyna się od nowa i przechodzi przez wszystkie wartości col, od 1 do cols. Zatem przy rows = 3 i cols = 2 kod wewnątrz wykona się łącznie 6 razy (3 × 2). Wartości rows i cols nigdy się nie zmieniają: tylko informują pętle, kiedy mają się zatrzymać.

Zagnieżdżone pętle są często używane do pracy ze strukturami przypominającymi siatkę lub do generowania wzorów.

Oto przykład, który wypisuje prostokąt z gwiazdek:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Przejdź do następnego wiersza
}
// Wynik:
// ****
// ****

Element terminator: "" zapobiega dodawaniu przez print znaku nowej linii, dzięki czemu gwiazdki pojawiają się w tym samym wierszu. Po zakończeniu pętli wewnętrznej print("") przechodzi do następnego wiersza.

challenge icon

Wyzwanie

Łatwy

Wczytaj z wejścia dwie liczby całkowite: rows i cols. Użyj zagnieżdżonych pętli, aby wypisać siatkę liczb, w której każda komórka zawiera iloczyn numeru swojego wiersza i kolumny.

Otrzymasz następujące dane wejściowe:

  • Pierwszy wiersz: liczba wierszy (np. "3")
  • Drugi wiersz: liczba kolumn (np. "4")

Wymagania:

  • Użyj zewnętrznej pętli dla wierszy (od 1 do rows)
  • Użyj wewnętrznej pętli dla kolumn (od 1 do cols)
  • Wypisz iloczyn numerów bieżącego wiersza i kolumny
  • Oddziel wartości w tym samym wierszu spacją
  • Każdy wiersz powinien znaleźć się w osobnym wierszu

Podpowiedź: Użyj terminator: " ", aby pozostawić wartości w tym samym wierszu, a następnie użyj print("") po wewnętrznej pętli, aby przejść do następnego wiersza.

Na przykład, jeśli rows ma wartość 3, a cols ma wartość 4, wynikiem powinno być:

1 2 3 4 
2 4 6 8 
3 6 9 12 

Użyj nowego licznika dla każdej pętli (na przykład row dla wierszy i col dla liczb w wierszu) i porównuj go z rows lub cols. Nie zmieniaj samych rows i cols: każdy wiersz ponownie potrzebuje wartości cols.

Spróbuj swoich sił

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: Napisz swój kod poniżej
// Użyj zagnieżdżonych pętli, aby wyświetlić tabliczkę mnożenia
// Pętla zewnętrzna: iteruj po wierszach (1 do rows)
// Pętla wewnętrzna: iteruj po kolumnach (1 do cols)
// Wyświetl iloczyn row * column
// Użyj print(..., terminator: " "), aby wartości pozostały w tym samym wierszu
// Użyj print("") po pętli wewnętrznej, aby przejść 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: Edytor online Swift