학습
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 문을 통해 조건에 따라 실행을 제어하거나 반복 작업을 수행할 수 있습니다.