Menu
CoddyTech

Ciclo annidato

Fa parte della sezione Fondamenti del percorso GDScript di Coddy. Lezione 49 di 92.

Un ciclo annidato è un ciclo all'interno di un altro ciclo. Per ogni iterazione del ciclo esterno, il ciclo interno esegue tutte le sue iterazioni:

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

Il blocco interno è rientrato di due livelli. Viene eseguito rows x cols = 3 x 2 = 6 volte in totale. j riparte da 0 ogni volta che viene eseguito il ciclo esterno, mentre rows e cols rimangono uguali e indicano solo ai cicli quando fermarsi.

I due cicli hanno bisogno di nomi di variabili diversi. Scrivere for i dentro un altro for i è un errore, segnalato prima che il programma venga eseguito.

I cicli annidati sono utili per righe e colonne. print() termina sempre la riga, quindi, per stampare una riga di asterischi, costruiscila prima in una stringa e stampala una volta terminato il ciclo interno:

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

Il ciclo esterno viene eseguito una volta per riga e il ciclo interno aggiunge una stella per colonna. Un break all'interno del ciclo interno interrompe solo il ciclo interno: il ciclo esterno prosegue con l'iterazione successiva.

challenge icon

Sfida

Facile

Il programma legge due numeri interi: rows e cols.

Usa cicli annidati per stampare un rettangolo di asterischi (*) con rows righe e cols asterischi su ogni riga.

Per gli input 3 e 4, l'output è:

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

Usa un nuovo contatore per ogni ciclo (per esempio row per le righe e col per gli asterischi in una riga) e confrontalo con rows o cols. Non modificare rows e cols: ogni riga ha bisogno di cols di nuovo.

Provalo tu

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# Ciclo esterno: un'iterazione per riga
	# Ciclo interno: aggiungi una stella per colonna
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore GDScript online