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