Menu
Coddy logo textTech

Pętle zagnieżdżone

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 49 z 109.

Pętle zagnieżdżone to pętle umieszczone wewnątrz innej pętli. Pętla wewnętrzna wykonuje się w całości przy każdej iteracji pętli zewnętrznej.

Stwórzmy tabliczkę mnożenia dla liczb 1–3 przy użyciu zagnieżdżonych pętli:

for i := 1; i <= 3; i++ {
    for j := 1; j <= 3; j++ {
        fmt.Printf("%d×%d=%d\t", i, j, i*j)
    }
    fmt.Println()
}

Po wykonaniu tego kodu otrzymujemy tabliczkę mnożenia, w której każdy wiersz przedstawia jedną wartość zmiennej zewnętrznej pętli (i) pomnożoną przez wszystkie wartości zmiennej wewnętrznej pętli (j). Wynik pojawi się na ekranie:

1×1=1   1×2=2   1×3=3   
2×1=2   2×2=4   2×3=6   
3×1=3   3×2=6   3×3=9   

Przyjrzyjmy się krok po kroku, jak to działa:

Najpierw pętla zewnętrzna ustawia i=1, a pętla wewnętrzna wykonuje się do końca:

i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"

Po zakończeniu pętli wewnętrznej wypisujemy nowy wiersz za pomocą fmt.Println().

Następnie pętla zewnętrzna ustawia i=2, a pętla wewnętrzna uruchamia się ponownie:

i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"

Na koniec pętla zewnętrzna ustawia i=3, a pętla wewnętrzna wykonuje się po raz ostatni:

i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"

Ten wzorzec zagnieżdżonych pętli jest bardzo przydatny podczas pracy z tabelami danych lub tworzenia struktur przypominających siatkę.

challenge icon

Wyzwanie

Początkujący

W tym wyzwaniu poćwiczysz używanie zagnieżdżonych pętli do drukowania prostego wzoru. Zewnętrzna pętla będzie iterować przez wiersze, a wewnętrzna pętla będzie iterować przez kolumny, aby utworzyć małą siatkę znaków.

Uzupełnij zagnieżdżone pętle, aby wydrukować siatkę gwiazdek 3x3 (*). Po każdej gwiazdce musi znajdować się spacja, więc każdy wiersz powinien wyglądać tak: * * * (ze spacją na końcu). Oczekiwany wynik:

* * * 
* * * 
* * * 

Spróbuj swoich sił

package main

import "fmt"

func main() {
	// Liczba wierszy i kolumn w naszej siatce
	rows := 3
	columns := 3
	
	// TODO: Utwórz zagnieżdżoną pętlę, aby wypisać siatkę gwiazdek (*)
	// Pętla zewnętrzna powinna przechodzić przez wiersze
	// Pętla wewnętrzna powinna przechodzić przez kolumny
	for i := 0; i < rows; i++ {
		// Dodaj tutaj pętlę wewnętrzną, aby wypisać gwiazdki w każdej kolumnie
		
		// To wypisuje nową linię po każdym wierszu
		fmt.Println()
	}
}
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 Go online