프로그래밍언어.Lib/루아(Lua)
루아(lua)의 논리연산자 and,or,not
살레시오
2016. 1. 27. 11:23
루아에서 조건문들 상의 논리 관계를 규정할 때 and, or, not 연산자를 사용한다. 예를 들어 변수 x가 -1과 1 사이의 값인지를 검사하려면
if -1 < x and x<1 then … end |
와 같이 -1<x 와 x<1 을 and로 연결하면 된다. and 연산자는 조건식 두 개를 받아서 둘 다 true인 경우에만 true가 된다. or연산자는 둘 다 false 인 경우에만 false 가 된다.
x | y | x and y | x or y |
true | true | true | true |
true | fasle | false | true |
fasle | true | false | true |
fasle | fasle | false | false |
만약 ‘변수 a가 -2보다 작거나 1보다 크다’는 조건을 검사하려면 다음과 같이 하면 될 것이다.
if a<-2 or a>1 then … end |
연산자 not 은 피연산자가 하나인 단항 연산자로서 not x 의 경우 x가 true이면 false가 되고 x가 false이면 true가 된다.
a = nilb = 0c = not ad = not b |
위의 예어서 c에 저장되는 값은 true이다. 왜냐면 nil은 false 로 간주되므로 false의 역은 true이기 때문이다. 루아에서는 오직 nil과 false 만 거짓으로 간주된다는 사실에 유의해야 한다. 숫자 0은 true이므로 d에는 false가 대입된다.
local b = 10if not a then b=b+1 end |
위 예에서 a 는 선언되지 않았으므로 nil이다. 따라서 then~end 블럭이 수행된다. not a 가 true이기 때문이다. 이 프로그램이 수행되면 b에는 11이 저장될 것이다.
c{lua},n{lua009} |