중첩 반복문
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는 안쪽 루프만 중단합니다. 바깥쪽 루프는 다음 반복을 계속합니다.
챌린지
쉬움프로그램은 두 개의 정수를 읽습니다: 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())
# 바깥쪽 반복문: 행마다 한 번씩 반복
# 안쪽 반복문: 열마다 별 하나씩 추가
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러