Menu
CoddyTech

Pętla zagnieżdżona

Część sekcji Podstawy ścieżki GDScript w Coddy. Lekcja 49 z 92.

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

for i in range(3):
	print("Outer: ", i)
	for j in range(2):
		print("  Inner: ", j)
Outer: 0
  Inner: 0
  Inner: 1
Outer: 1
  Inner: 0
  Inner: 1
Outer: 2
  Inner: 0
  Inner: 1

Wewnętrzny blok jest wcięty o dwa poziomy. Wykonuje się łącznie 3 x 2 = 6 razy.

Obie pętle muszą mieć różne nazwy zmiennych. Zapisanie for i wewnątrz innego for i jest błędem zgłaszanym przed uruchomieniem programu.

Zagnieżdżone pętle są przydatne do tworzenia wierszy i kolumn. print() zawsze kończy wiersz, więc aby wypisać wiersz gwiazdek, najpierw utwórz go w ciągu znaków i wypisz dopiero po zakończeniu pętli wewnętrznej:

for row in range(2):
	var line := ""
	for col in range(3):
		line += "*"
	print(line)
***
***

Pętla zewnętrzna wykonuje się raz dla każdego wiersza, a pętla wewnętrzna dodaje jedną gwiazdkę dla każdej kolumny. Instrukcja break wewnątrz pętli wewnętrznej zatrzymuje tylko pętlę wewnętrzną: pętla zewnętrzna przechodzi do następnej iteracji.

challenge icon

Wyzwanie

Łatwy

Program odczytuje dwie liczby całkowite: rows i cols.

Użyj zagnieżdżonych pętli, aby wypisać prostokąt z gwiazdek (*) zawierający rows wierszy i po cols gwiazdek w każdym wierszu.

Dla danych wejściowych 3 i 4 wynikiem jest:

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

Spróbuj swoich sił

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# Pętla zewnętrzna: jedna iteracja na każdy wiersz
	# Pętla wewnętrzna: dodaj jedną gwiazdkę na każdą kolumnę
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 GDScript online