repeat-until 반복문
Coddy Lua 여정의 기초 (Fundamentals) 섹션에 포함된 레슨. 90개 중 72번째.
Lua는 repeat-until 루프라는 또 다른 유형의 루프를 제공합니다. 이 루프는 방금 배운 while 루프와 구별되는 고유한 특징을 가지고 있습니다. 핵심적인 차이점은 repeat-until 루프가 조건과 관계없이 코드 블록을 항상 최소 한 번 실행한다는 것입니다.
구문은 다음과 같습니다:
repeat
-- 반복할 코드
until conditionuntil 조건은 코드가 이미 한 번 실행된 후인 마지막에 확인된다는 점에 유의하세요. 조건이 true가 될 때까지 루프가 계속 반복됩니다. 이는 조건이 true인 동안 계속되는 while 루프와는 반대입니다.
다음은 6이 나올 때까지 주사위를 굴리는 과정을 시뮬레이션하는 실용적인 예입니다:
local roll = 0
repeat
roll = math.random(1, 6) -- 1과 6 사이의 숫자를 굴립니다
print("Rolled:", roll)
until roll == 6
print("Finally got a 6!")이 루프는 주사위를 최소 한 번 굴리도록 보장하며, roll == 6 조건이 참이 될 때까지 계속 굴립니다. 이러한 "먼저 실행하고 나중에 확인하는" 동작 때문에 repeat-until 루프는 계속할지 결정하기 전에 무언가가 최소 한 번 일어나야 하는 상황에 적합합니다.
챌린지
쉬움간단한 password 검증 시뮬레이션을 만들고 있습니다.
password라는 변수를 만들고 빈 문자열("")로 설정하세요.correctPassword라는 또 다른 변수를 만들고"secure123"으로 설정하세요.attempts라는 테이블을 만들고 다음 password attempts를 순서대로 포함하세요:"password""123456""admin""secure123"
index라는 변수를 만들고1로 설정하세요. 이를 사용하여 현재 어떤 attempt에 있는지 추적합니다.repeat-untilloop를 사용하여 다음을 수행하세요:attempts[index]를 사용하여 current attempt를password에 할당하세요. 이는 테이블에서index위치의 항목을 읽습니다.- current
password를 Print하세요. - 다음 attempt로 이동하도록
index를 1만큼 증가시키세요(예:index = index + 1).
password가correctPassword와 같을 때만 loop가 Stop해야 합니다.
loop가 실행될 때마다 테이블에서 하나의 attempt를 읽고, 이를 Print한 다음 next 항목으로 이동합니다. correct password를 찾을 때까지 loop가 계속됩니다.
직접 해보기
-- 변수 초기화
local password = ""
local correctPassword = "secure123"
-- 비밀번호 시도 목록
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1
-- TODO:
-- repeat-until 루프를 사용하여:
-- 1. 현재 시도를 지침의 정확한 텍스트에 할당
-- 2. 시도한 비밀번호 출력
-- 3. 다음 시도로 이동
-- password가 correctPassword와 일치할 때 중지이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초 (Fundamentals)의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러