IMCAT.DEV
로그인 가입
Lua 입문 문법

Lua 제어문 (if, for, while)

Lua 제어문 (if, for, while) — 초급

제어문 (if, for, while)

1. 도입 (왜 배워야 하는가)

프로그래밍에서 제어문은 프로그램의 흐름을 결정하는 중요한 도구입니다. 제어문을 통해 특정 조건에 따라 코드의 실행 여부를 결정하거나, 반복적으로 작업을 수행할 수 있습니다. 예를 들어, 쇼핑몰에서 사용자가 장바구니에 담은 상품의 수량에 따라 할인율을 다르게 적용할 수 있습니다. 만약 제어문을 사용하지 않는다면, 모든 경우를 일일이 코드로 작성해야 하므로 비효율적이고 오류가 발생하기 쉽습니다. 따라서 제어문을 잘 이해하고 활용하는 것은 프로그래머로서의 필수 역량입니다.

2. 핵심 개념 설명

2.1 if 문

if 문은 조건이 참일 때 특정 코드를 실행하도록 하는 제어문입니다. 마치 "비가 올 경우 우산을 챙기세요"와 같은 조건문으로 생각할 수 있습니다.

2.2 for 문

for 문은 정해진 횟수만큼 반복 실행할 때 사용됩니다. 예를 들어 "사과를 5개 까지 세어보세요"라는 지시와 비슷합니다.

2.3 while 문

while 문은 주어진 조건이 참인 동안 계속해서 반복 실행합니다. 이는 "내가 원하는 만큼 계속 달리세요"와 같은 상황과 유사합니다.
제어문정의사용 예시
if조건에 따라 코드 실행특정 점수가 60점 이상일 때 통과
for정해진 횟수만큼 반복 실행1부터 10까지 숫자 출력
while조건이 참인 동안 계속 반복 실행사용자가 'q'를 입력할 때까지 반복

3. 기본 코드 예제

3.1 if 문 사용 예제

local score = 75

if score >= 60 then
    print("합격입니다!")
else
    print("불합격입니다!")
end

실행 결과:

합격입니다!
  • local score = 75: 변수 score에 75를 할당합니다.
  • if score >= 60 then: score가 60 이상인지 검사합니다.
  • print("합격입니다!"): 조건이 참일 경우 "합격입니다!"를 출력합니다.
  • else: 조건이 거짓일 경우 다음 코드를 실행합니다.
  • print("불합격입니다!"): 조건이 거짓일 경우 "불합격입니다!"를 출력합니다.
  • end: if 문을 종료합니다.
  • 3.2 for 문 사용 예제

    for i = 1, 5 do
        print("사과 " .. i .. "개")
    end

    실행 결과:

    사과 1개
    사과 2개
    사과 3개
    사과 4개
    사과 5개
  • for i = 1, 5 do: i를 1부터 5까지 반복합니다.
  • print("사과 " .. i .. "개"): 매 반복마다 i의 값을 포함한 문자열을 출력합니다.
  • end: for 문을 종료합니다.
  • 3.3 while 문 사용 예제

    local count = 1
    
    while count <= 5 do
        print("카운트: " .. count)
        count = count + 1
    end

    실행 결과:

    카운트: 1
    카운트: 2
    카운트: 3
    카운트: 4
    카운트: 5
  • local count = 1: count 변수를 1로 초기화합니다.
  • while count <= 5 do: count가 5 이하인 경우 반복합니다.
  • print("카운트: " .. count): 현재 count 값을 출력합니다.
  • count = count + 1: count를 1씩 증가시킵니다.
  • end: while 문을 종료합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰의 장바구니 계산

    local item_count = 3
    local total_price = 0
    
    if item_count >= 5 then
        total_price = item_count  9000  0.9 -- 10% 할인
    else
        total_price = item_count * 9000
    end
    
    print("총 가격: " .. total_price .. "원")

    상황 설명: 사용자가 장바구니에 담은 상품 수에 따라 할인율이 달라지는 예제입니다.

    예제 2: 사용자 입력에 따른 반복

    local input
    repeat
        print("종료하려면 'q'를 입력하세요. 어떤 작업을 하시겠습니까?")
        input = io.read()
    until input == 'q'

    상황 설명: 사용자가 'q'를 입력할 때까지 계속해서 작업을 요청하는 예제입니다.

    5. 흔한 실수와 주의사항

    5.1 if 문에서 조건을 잘못 설정

    잘못된 코드

    if score > 60 then
        print("합격입니다!")
    else
        print("불합격입니다!") -- 60점도 불합격으로 처리됨
    end

    올바른 코드

    if score >= 60 then
        print("합격입니다!")
    end

    주의사항: 조건을 설정할 때 부등호를 잘못 사용할 수 있으니, 항상 조건을 주의 깊게 확인해야 합니다.

    5.2 for 문에서 범위를 잘못 설정

    잘못된 코드

    for i = 1, 10, 2 do -- 1부터 10까지 2씩 증가
        print(i)
    end

    올바른 코드

    for i = 1, 5 do
        print(i) -- 1부터 5까지 출력
    end

    주의사항: 반복 범위와 증가량을 설정할 때 실수할 수 있으니, 원하는 범위를 명확히 해야 합니다.

    5.3 while 문에서 무한 루프 발생

    잘못된 코드

    local count = 1
    while count <= 5 do
        print("카운트: " .. count)
        -- count 증가가 없음
    end

    올바른 코드

    local count = 1
    while count <= 5 do
        print("카운트: " .. count)
        count = count + 1 -- 카운트를 증가시켜 무한 루프 방지
    end

    주의사항: 조건문이 항상 참이 되지 않도록 반복문 내부에서 변수를 업데이트해야 합니다.

    6. 정리

  • 제어문은 프로그램의 흐름을 결정짓는 필수 요소입니다.
  • if, for, while 문을 통해 조건에 따라 실행을 제어하거나 반복 작업을 수행할 수 있습니다.
  • 실생활의 다양한 상황에 비유하여 이해할 수 있습니다.
  • 다음 학습 주제로는 함수, 테이블, 또는 Lua의 고급 기능을 추천합니다.