루아에서 어떤 조건에 따라서 수행될 명령어 집합을 지정해 줄 때 if 명령어를 사용한다. 기본적인 문법은 다음과 같다.


if 조건식 then
  명령문1
  명령문2
  ...
end


if와 then 사이에는 조건식이 오는데 이 조건식이 true 일 경우 then 과 end 사이의 명령어들을 수행하고 false일 경우는 수행하지 않는다.(조건식을 괄호로 묶어줄 필요는 없다.) 루아는 프로그램 블럭(bloc)을 지정할 때 다른 언어에서 흔히 쓰이는 {...} 를  사용하지 않는다. 대신 이 기호는 뒤어 설명할 테이블을 생성할 때 사용된다. 루아에서의 코딩 블럭은 then~end, do ~ end, 와 같이 then, do, else 등 특정한 키워드로 시작하고  end로 마감된다.

 변수에 대입된 숫자가 짝수일 경우 ‘even number’라고 출력하는 프로그램을 작성해 보면 다음과 같다. 2로 나눈 나머지가 0이라면 짝수, 1이면 홀수라는 사실을 이용한다.


a = 12
if a%2 == 0 then
   print('even number')
end

실행 결과

even number


if~then사이에는 조건식 뿐만 아니라 변수와 같은도 올 수 있으며 이 경우에도 그 표현식이 true일 경우 then ~ end 블럭이 수행된다. 루아에서 false 로 간주되는 것은 false와 nil 뿐이다. 따라서 0이나 ‘’ (빈 문자열)은 true 로 간주된다.


count = 0
if count then
   print('count = '..count)
end

실행 결과

count = 0


위 예에서 count는 0값을 가지므로 true이다. 따라서 then~end 블럭이 수행된다. 그리고 일전에 선언되지 않은 변수는 nil값을 가진다고 설명한 바 있다.


if num then
   print('num is not false nor nil.')
end

실행결과



따라서 위 예에서 num은 선언되지 않았으므로 nil이고 nil은 false로 간주되므로 아무것도 실행되지 않는다.



Posted by 살레시오
,