Menu
CoddyTech

Bucle anidado

Parte de la sección Fundamentos del Journey de GDScript de Coddy. Lección 49 de 92.

Un bucle anidado es un bucle dentro de otro bucle. En cada iteración del bucle externo, el bucle interno ejecuta todas sus iteraciones:

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

El bloque interno tiene una sangría de dos niveles. Se ejecuta 3 x 2 = 6 veces en total.

Los dos bucles necesitan nombres de variable diferentes. Escribir for i dentro de otro for i es un error que se informa antes de que se ejecute el programa.

Los bucles anidados son útiles para las filas y las columnas. print() siempre termina la línea, así que para imprimir una fila de estrellas, primero constrúyela en una cadena y luego imprímela cuando termine el bucle interno:

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

El bucle externo se ejecuta una vez por fila, y el bucle interno añade una estrella por columna. Un break dentro del bucle interno detiene solo el bucle interno: el bucle externo continúa con su siguiente iteración.

challenge icon

Desafío

Fácil

El programa lee dos números enteros: rows y cols.

Usa bucles anidados para imprimir un rectángulo de asteriscos (*) con rows líneas y cols asteriscos en cada línea.

Para las entradas 3 y 4, la salida es:

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

Pruébalo tú mismo

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# Bucle externo: una iteración por fila
	# Bucle interno: añade una estrella por columna
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de GDScript online