만약 어떤 조건이 참일때와 거짓일 때를 구분해서 실행시키려면 if ~ then ~ else ~ end 구문을 사용한다.


if 조건식 then
   코드블럭1
else
   코드블럭2
end


조건식이 참이라면 then~else 사이의 코드블럭1이, 거짓이라면 else~end 사이의 코드블럭2가 수행된다. end는 맨 마지막에만 붙는다는 것에 유의해야 한다. 즉, if 와 짝을 이루는 end 하나만 마지막에 와야 한다. 예를 들면 다음과 같다.


a = 11
if a%2 == 0 then
   print('even number')
else
   print('odd number')
end

실행 결과

odd number


if ~ then 사이의 조건이 거짓이이므로 else~end 사이의 코드가 수행된다.


 여러 조건을 검사해야 할 때는 elseif 를 사용한다.


if 조건식1 then
   코드블럭1
elseif 조건식2 then
   코드블럭2
elseif 조건식3 then
   코드블럭3
...
else
   코드블럭n
end


elseif가 공백이 없는 한 단어이다. 이렇게 하면 여러가지 조건에 따라서 서로 다른 코드블럭을 수행할 수 있다. 예를 들면 다음과 같다. 여기에서도 end는 맨 마지막에 하나만 와야 한다. 마지막 코드블럭n은 모든 조건식들이 다 거짓일 경우 수행된다.


if a < 0 then
   print('negative')
elseif a==0 then
   print('zero')
else
   print('positive')
end


이 예에서 만약 a가 음수이면 ‘negative’가, 0이라면 ‘zero’가, 양수라면’positive’가 출력될 것이다.

 

 루아에서는 C계열 언어의 switch~case 구문이 없다. 하지만 elseif 구문을 사용하면 동일한 기능을 하는 코드를 작성할 수 있다.



Posted by 살레시오
,