Menu
CoddyTech

repeat-until 반복문

Coddy Lua 여정의 기초 섹션에 포함된 레슨. 90개 중 72번째.

Lua에는 repeat-until 루프라는 또 다른 종류의 루프가 있습니다. 이 루프에는 방금 배운 while 루프와 구별되는 고유한 특징이 있습니다. 가장 큰 차이점은 조건에 관계없이 repeat-until 루프가 코드 블록을 최소 한 번은 실행한다는 것입니다.

구문은 다음과 같습니다:

repeat
    -- 반복할 코드
until condition

조건은 코드가 이미 한 번 실행된 후인 끝부분에서 확인된다는 점에 주목하세요. 조건이 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 루프가 적합한 이유입니다.

challenge icon

챌린지

쉬움

간단한 비밀번호 검증 시뮬레이션을 만듭니다.

  1. 변수 password를 만들고 빈 문자열("")로 설정합니다.
  2. 변수 correctPassword를 만들고 "secure123"로 설정합니다.
  3. 다음 비밀번호 입력 시도들을 순서대로 포함하는 테이블 attempts를 만듭니다.
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. 변수 index를 만들고 1로 설정합니다. 이 변수를 사용해 현재 몇 번째 시도인지 추적합니다.
  5. repeat-until 루프를 사용해 다음 작업을 수행합니다.
    • attempts[index]를 사용해 현재 시도를 password에 할당합니다. 이렇게 하면 테이블에서 index 위치의 항목을 읽습니다.
    • password의 현재 값을 출력합니다.
    • index를 1만큼 증가시켜(예: index = index + 1) 다음 시도로 이동합니다.
  6. 루프는 password가 correctPassword와 같을 때만 중지해야 합니다.

루프가 실행될 때마다 테이블에서 한 번의 시도를 읽고 출력한 다음, 다음 시도로 넘어갑니다. 올바른 비밀번호를 찾을 때까지 루프는 계속 실행됩니다.

직접 해보기

-- 변수를 초기화합니다
local password = ""
local correctPassword = "secure123"

-- 비밀번호 시도 목록
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1

-- TODO:
-- repeat-until 루프를 사용하여 다음을 수행합니다:
-- 1. 현재 시도 값을 password에 할당합니다
-- 2. 시도한 비밀번호를 출력합니다
-- 3. 다음 시도로 넘어갑니다
-- password가 correctPassword와 일치하면 중지합니다
quiz icon실력 점검

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

기초의 모든 레슨

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