루아에서 어떤 조건에 따라서 수행될 명령어 집합을 지정해 줄 때 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 = 12if a%2 == 0 thenprint('even number')end |
실행 결과 |
even number |
if~then사이에는 조건식 뿐만 아니라 변수와 같은도 올 수 있으며 이 경우에도 그 표현식이 true일 경우 then ~ end 블럭이 수행된다. 루아에서 false 로 간주되는 것은 false와 nil 뿐이다. 따라서 0이나 ‘’ (빈 문자열)은 true 로 간주된다.
count = 0if count thenprint('count = '..count)end |
실행 결과 |
count = 0 |
위 예에서 count는 0값을 가지므로 true이다. 따라서 then~end 블럭이 수행된다. 그리고 일전에 선언되지 않은 변수는 nil값을 가진다고 설명한 바 있다.
if num thenprint('num is not false nor nil.')end |
실행결과 |
따라서 위 예에서 num은 선언되지 않았으므로 nil이고 nil은 false로 간주되므로 아무것도 실행되지 않는다.
c{lua},n{lua008} |
'프로그래밍언어.Lib > 루아(Lua)' 카테고리의 다른 글
루아(lua)의 중첩된 조건문을 위한 elseif와 else 명령 (0) | 2016.01.27 |
---|---|
루아(lua)의 논리연산자 and,or,not (1) | 2016.01.27 |
루아(Lua)의 nil (0) | 2016.01.26 |
루아(Lua)의 문자열 (0) | 2016.01.26 |
루아(Lua)의 부울형과 조건연산자 (3) | 2016.01.26 |