산술 연산자
LUA의 산술 연산자는 다음과 같습니다.
"+"(추가) :
코드 사본은 다음과 같습니다.
인쇄 (1 + 2)
"-"(subtaction) :
코드 사본은 다음과 같습니다.
인쇄 (2-1)
"*"(곱셈):
코드 사본은 다음과 같습니다.
인쇄 (1 * 2)
"/"(분할):
코드 사본은 다음과 같습니다.
인쇄 (1 / 2)
"^"(인덱스) :
코드 사본은 다음과 같습니다.
인쇄 (27^(-1/3))
"%" (모델):
코드 사본은 다음과 같습니다.
인쇄 (5 % 3)
관계형 운영자
LUA는 다음과 같은 관계형 운영자를 제공합니다.
코드 사본은 다음과 같습니다.
<> <=> = == ~ =
위의 연산자가 반환 한 작업은 참 또는 거짓입니다. 문자열은 숫자와 비교할 수 없습니다
논리 연산자
논리적 운영자는 포함하거나 포함하지 않습니다
코드 사본은 다음과 같습니다.
인쇄 (1 및 2)
인쇄 (nil 및 1)
인쇄 (False 및 2)
인쇄 (1 또는 2)
인쇄 (false 또는 5)
논리 연산자는 거짓과 nil을 거짓으로, 다른 사람들은 사실로 취급합니다.
로컬 변수 및 범위
LUA는 로컬 진술을 통해 로컬 변수를 생성하며 로컬 변수의 범위는이를 선언하는 블록으로 제한됩니다.
코드 사본은 다음과 같습니다.
로컬 A, B = 1, 10
a <b라면
인쇄 (a)
지역 a
인쇄 (a)
끝
인쇄 (a, b)
로컬 변수 로컬로 글로벌 변수를 저장하면 현재 범위의 글로벌 변수에 대한 액세스 속도를 높일 수 있습니다. 가속 효과의 경우 아래 피보나치 시퀀스의 실행 시간을 비교하여 다음을 계산하십시오.
코드 사본은 다음과 같습니다.
기능 fibonacci (n)
그렇다면 n <2라면
반환 n
끝
반환 피보나키 (n -2) + fibonacci (n -1)
끝
io.write (Fibonacci (50), "/n")
로컬 변수 로컬을 사용하십시오
코드 사본은 다음과 같습니다.
로컬 기능 fibonacci (n)
그렇다면 n <2라면
반환 n
끝
반환 피보나키 (n -2) + fibonacci (n -1)
끝
io.write (Fibonacci (50), "/n")
제어 구조
그렇다면 elseif 다른 끝
코드 사본은 다음과 같습니다.
num == 1이면
인쇄 (1)
elseif num == 2
인쇄 (2)
또 다른
인쇄 ( "기타")
끝
LUA는 스위치 문을 지원하지 않습니다
하는 동안
첫 번째 조건을 판단하십시오. 조건이 참이면 루프 본체를 실행하면 종료됩니다.
코드 사본은 다음과 같습니다.
로컬 i = 1
[i]하는 동안
인쇄 (a [i])
i = i + 1
끝
반복
먼저 순환체를 한 번 실행 한 다음 상태를 판단하십시오. 상태가 참이면 순환체를 종료하고 그렇지 않으면 순환체를 계속 실행하십시오. 다른 언어로 된 Do-While 문과 유사하게, 루프 본문은 적어도 한 번은 실행됩니다.
코드 사본은 다음과 같습니다.
로컬 A = 1
반복하다
a = a + 1
b = a
인쇄 (b)
b <10까지
루프 용
루프 설명에는 두 가지 형식이 있습니다 : 숫자 (숫자), 일반 (generic for)
구문 번호 :
코드 사본은 다음과 같습니다.
시작, 끝, 단계를 위해
뭔가를하고 있습니다
끝
시작은 시작 값이고, 끝은 끝 값이며, 단계는 단계 크기입니다 (선택 사항, 기본값은 1).
코드 사본은 다음과 같습니다.
a = 10, 0, -2의 경우
인쇄 (a)
끝
루프를위한 일반적인 것은 반복자 함수를 통해 모든 값을 가로 지릅니다.
코드 사본은 다음과 같습니다.
탭 = {key1 = "val1", key2 = "val2", "val3"}
k의 경우 v 쌍 (탭)을 수행합니다
k == "key2"라면
부서지다
끝
print (k .. " -".. v)
끝
브레이크 및 리턴 명령문은 현재 실행 된 블록에서 벗어나는 데 사용됩니다.