while 및 repeat-until 반복문
조건에 따라 반복되는 작업에 while과 repeat-until을 사용합니다.
while 및 repeat-until 반복문은(는) CoddyKit의 무료 Lua Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Lua Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
while 반복문
while 반복문은 조건이 참 같은 값인 동안 본문을 반복합니다. 조건은 각 반복 전에 확인됩니다. 처음부터 조건이 거짓이면 본문은 실행되지 않습니다. 무한 반복을 피하려면 반복문이 항상 종료 조건을 향해 진행되도록 하십시오.
local count = 1
while count <= 5 do
print(count)
count = count + 1
end
-- prints 1 through 5repeat-until 반복문
repeat...until 반복문은 Lua에서 do-while에 해당합니다. 본문은 최소 한 번 실행되며, 조건은 각 반복이 끝난 후에 확인됩니다. 조건이 참이 되면 반복문이 종료됩니다(while과 반대입니다). 본문 안에서 선언한 변수는 조건식에서도 사용할 수 있습니다.
local n = 1
repeat
print(n)
n = n * 2
until n > 100
-- prints: 1, 2, 4, 8, 16, 32, 64break를 사용하는 무한 반복문
이벤트 반복문이나 재시도 패턴에는 while true do를 사용하고, 조건이 충족되면 break로 빠져나오도록 하십시오. 이 패턴은 게임의 주 반복문이나 계속 실행되는 네트워크 서버에서 흔히 사용됩니다.
local attempts = 0
local MAX = 3
while true do
attempts = attempts + 1
print("Attempt " .. attempts)
if attempts >= MAX then
print("Max attempts reached")
break
end
endwhile을 사용한 카운트다운
while 반복문은 숫자를 감소시키며 세어 내려갈 때도 똑같이 잘 작동합니다. 핵심은 결국 종료 조건을 만족하도록 변수를 갱신하는 것입니다. 카운터 갱신을 잊는 것은 무한 반복문이 발생하는 흔한 원인입니다.
local i = 10
while i > 0 do
io.write(i .. " ")
i = i - 1
end
print() -- newline
-- output: 10 9 8 7 6 5 4 3 2 1입력 검증에 repeat-until 사용하기
repeat-until 패턴은 입력 검증에 적합합니다. 먼저 한 번 요청한 다음, 그 후에 확인하기 때문입니다. 이 패턴에서는 본문이 항상 최소 한 번 실행되므로 “요청한 다음 검증한다”라는 자연스러운 흐름과 잘 맞습니다.
-- Simulated input validation
local inputs = {-1, 0, 5} -- pretend user input
local idx = 0
local value
repeat
idx = idx + 1
value = inputs[idx]
print("Got: " .. value)
until value > 0
print("Valid value: " .. value) -- 5반복문 변수는 지역 변수입니다
반복문 본문 안에서 local로 선언한 변수는 매 반복마다 새로 만들어집니다. 이는 반복문 변수를 클로저에서 캡처할 때 중요합니다. 각 클로저가 자신만의 복사본을 캡처하기 때문입니다. 반복문 밖에서 선언한 변수는 여러 반복에 걸쳐 유지됩니다.
local callbacks = {}
for i = 1, 3 do
local captured = i -- local per iteration
callbacks[i] = function() return captured end
end
print(callbacks[1]()) -- 1
print(callbacks[2]()) -- 2
print(callbacks[3]()) -- 3누적기 패턴
while 반복문의 흔한 사용 사례는 결과를 누적하는 것입니다. 합계, 곱, 문자열 연결, 테이블 생성은 모두 누적기 패턴을 따릅니다. 반복문 전에 초기화하고, 반복문 안에서 갱신한 다음, 반복문 뒤에 결과를 사용합니다.
local numbers = {3, 1, 4, 1, 5, 9, 2, 6}
local sum = 0
local i = 1
while i <= #numbers do
sum = sum + numbers[i]
i = i + 1
end
print("Sum:", sum) -- 31
print("Avg:", sum / #numbers) -- 3.875중첩 반복문
반복문은 중첩할 수 있습니다. 각 반복문은 자신만의 카운터를 유지합니다. 코드를 명확하게 하려면 의미가 드러나는 변수 이름을 사용하십시오. break 문은 가장 안쪽의 바깥 반복문 하나만 종료합니다. 여러 단계에서 빠져나오려면 플래그 변수나 goto(Lua 5.2 이상)가 필요할 수 있습니다.
local found = false
local target = 6
local i = 1
while i <= 3 and not found do
local j = 1
while j <= 3 do
if i * j == target then
print(i .. " * " .. j .. " = " .. target)
found = true
break
end
j = j + 1
end
i = i + 1
end여러 단계의 break에 goto 사용하기
Lua 5.2 이상에서는 레이블이 지정된 위치로 이동하는 goto가 도입되었습니다. 일반적으로 권장되지는 않지만, 플래그 변수 없이 중첩 반복문을 깔끔하게 빠져나올 때 사용할 수 있습니다. 레이블은 ::name:: 형식으로 정의합니다.
for i = 1, 5 do
for j = 1, 5 do
-- goto only valid approach for nested break in Lua
if i * j > 10 then
goto done
end
io.write(i*j .. " ")
end
end
::done::
print()
print("Stopped early")while과 repeat-until의 장단점
while: 반복이 0번일 수도 있을 때 사용합니다. 조건을 먼저 확인합니다. repeat-until: 최소 한 번은 반복해야 할 때 사용합니다. 조건을 나중에 확인합니다. 대부분의 반복문에는 while을 우선 사용하십시오. 동작을 먼저 실행한 후 확인해야 하는 메뉴, 프롬프트, 재시도 반복문에는 repeat-until을 사용하십시오.
-- while: may execute zero times
local ready = false
while ready do
print("never prints")
end
-- repeat-until: always executes at least once
local done = false
repeat
print("runs once even though done=false")
done = true
until done빠른 확인
repeat...until 반복문에서는 조건을 언제 확인합니까?
복습: while과 repeat-until
핵심 내용:
while cond do ... end— 실행 전에 확인하며, 한 번도 실행되지 않을 수 있습니다repeat ... until cond— 실행 후에 확인하며, 최소 한 번 실행됩니다break는 가장 안쪽 반복문을 종료합니다goto ::label::은 중첩 반복문에서 빠져나올 수 있습니다(Lua 5.2 이상)- 반복문 안의 지역 변수는 매 반복마다 새로 만들어집니다
- 결과를 만들 때 누적기 패턴을 사용하십시오
자주 묻는 질문
“while 및 repeat-until 반복문” 강의는 무료인가요?
네 — “while 및 repeat-until 반복문” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Lua Academy 강의 전체를 잠금 해제할 수 있습니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“while 및 repeat-until 반복문”에서 뭘 배우나요?
조건에 따라 반복되는 작업에 while과 repeat-until을 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Lua Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Lua Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Lua Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“while 및 repeat-until 반복문” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Lua Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Lua Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- if, elseif 및 else 문
- while 및 repeat-until 반복문
- 숫자형 for 반복문
- 제네릭 for와 break