Menu
CoddyTech

중첩 반복문

Coddy GDScript 여정의 기초 섹션에 포함된 레슨. 92개 중 49번째.

중첩 루프는 다른 루프 안에 있는 루프입니다. 바깥쪽 루프가 반복될 때마다 안쪽 루프는 모든 반복을 실행합니다:

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

내부 블록은 두 단계 들여쓰기되어 있습니다. 총 rows x cols = 3 x 2 = 6번 실행됩니다. 바깥쪽 루프가 실행될 때마다 j는 다시 0부터 시작하며, rows와 cols는 그대로 유지되고 루프가 언제 멈출지만 알려줍니다.

두 루프에는 서로 다른 변수 이름이 필요합니다. 다른 for i 안에 for i를 작성하면 오류가 발생하며, 이 오류는 프로그램이 실행되기 전에 보고됩니다.

중첩 루프는 행과 열을 처리할 때 유용합니다. print()는 항상 줄을 끝내므로 별표 한 행을 출력하려면 먼저 문자열로 만들고 내부 루프가 끝난 뒤 한 번 출력하세요:

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

바깥쪽 루프는 행마다 한 번 실행되고, 안쪽 루프는 열마다 별표를 하나씩 추가합니다. 안쪽 루프 안의 break는 안쪽 루프만 중단합니다. 바깥쪽 루프는 다음 반복을 계속합니다.

challenge icon

챌린지

쉬움

프로그램은 두 개의 정수를 읽습니다: rows와 cols.

중첩 루프를 사용하여 별(*)로 이루어진 직사각형을 출력하세요. 줄 수는 rows이고 각 줄의 별 개수는 cols입니다.

입력이 3과 4일 때 출력은 다음과 같습니다:

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

각 루프마다 새로운 카운터를 사용하고(예: 행에는 row, 한 행의 별에는 col) 이를 rows 또는 cols와 비교하세요. rows와 cols 자체는 변경하지 마세요. 각 행마다 cols가 다시 필요합니다.

직접 해보기

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# 바깥쪽 반복문: 행마다 한 번씩 반복
	# 안쪽 반복문: 열마다 별 하나씩 추가
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러