본문 바로가기
개발/LUA

[LUA] FOR 문

by esstory 2019. 9. 29.

루아 FOR 문  기본 문법은

for var = start, end, (step) do
   ...
end

식이다

파이썬이나 C/C++ 등과 다른 게 파이썬의 for 문은 end 조건 값과 같은 경우도 포함한다. 

또한 테이블의 카운트를 구하는 편의 함수 #table 은 구성요소가 배열인 경우에만  제대로 계산된다 (아래 샘플 코드 참조) --> #table 은 table 내에 [1] 로 시작하는 배열의 개수를 구하기 때문에 해당 키가 없으면 사이즈를 구하지 못한다.

print('--------------------------------------------------------------------')
print('0 에서 99 까지 더하기 예제')
print('--------------------------------------------------------------------')

local sum = 0 
for i = 0, 99 do
    sum = sum + i
    -- print(sum, i)
end

print(sum)
--> 4950


print('--------------------------------------------------------------------')
print('99에서 0까지 더하기 예제')
print('--------------------------------------------------------------------')
sum = 0 
for i = 99, 0, -1 do
    sum = sum + i
    -- print(sum, i)
end

print(sum)
--> 4950


print('--------------------------------------------------------------------')
print('일반 배열 테이블에 대한 for')
print('--------------------------------------------------------------------')
local list = {'영어', '수학', '과학'}

for i = 1, #list do 
    print(list[i])
end
--> 영어
--> 수학
--> 과학

print('--------------------------------------------------------------------')
print('(키/값)으로 이뤄진 테이블에 대한 for')
print('--------------------------------------------------------------------')
local list2 = {eng = 100, math = 90, sci = 80}

for i = 1, #list2 do 
    print(list2[i])
end
--> 주의 : #list2 는 0 이기 때문에 수행 되지 않는다. 

for k, v in pairs(list2) do 
    print(k, v)
end
--> eng	100
--> sci	80
--> math	90



print('--------------------------------------------------------------------')
print('배열과 (키/값)이 섞인 테이블에 대한 for')
print('--------------------------------------------------------------------')
local list3 = {'국어', eng = 100, math = 90, sci = 80}

for i = 1, #list3 do 
    print(list3[i])
end
--> 국어

for k, v in pairs(list3) do 
    print(k, v)
end
--> 1	국어
--> eng	100
--> sci	80
--> math	90

 

댓글