English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
연산자는 특별한 기호로, 해석자에게 특정 수학적이거나 논리적 연산을 수행하도록 지시합니다. Lua는 다음과 같은 연산자 유형을 제공합니다:
계산 연산자
관계 연산자
논리 연산자
기타 연산자
다음 표는 Lua 언어에서 사용되는 일반적인 계산 연산자를 나열합니다. A의 값을 설정합니다10B의 값은 20:
연산자 | 설명 | 예제 |
---|---|---|
+ | 加法 | A + B 출력 결과 30 |
- | 减法 | A - B 출력 결과 -10 |
* | 乘法 | A * B 출력 결과 200 |
/ | 除法 | B / A w 출력 결과 2 |
% | 나머지 | B % A 출력 결과 0 |
^ | 곱幂 | A^2 출력 결과 100 |
- | 부호 | -A 출력 결과 -10 |
다음 예제를 통해 계산 연산자의 사용을 더 잘 이해할 수 있습니다:
a = 21 b = 10 c = a + b print("라인 1 - c의 값은", c) c = a - b print("라인 2 - c의 값은", c) c = a * b print("라인 3 - c의 값은", c) c = a / b print("라인 4 - c의 값은", c) c = a % b print("라인 5 - c의 값은", c) c = a^2 print("라인 6 - c의 값은", c) c = -a print("라인 7 - c의 값은", c)
이 프로그램 실행 결과는 다음과 같습니다:
라인 1 - c의 값은 31 라인 2 - c의 값은 11 라인 3 - c의 값은 210 라인 4 - c의 값은 2.1 라인 5 - c의 값은 1 라인 6 - c의 값은 441 라인 7 - c의 값은 -21
다음 표는 Lua 언어에서 사용되는 일반적인 관계 연산자를 나열합니다. A의 값을 설정합니다10B의 값은 20:
연산자 | 설명 | 예제 |
---|---|---|
== | 일치, 두 값이 같은지 확인하고, 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다 | (A == B)는 false입니다。 |
~= | 불일치, 두 값이 같은지 확인하고, 다르면 true를 반환하고, 그렇지 않으면 false를 반환합니다 | (A ~= B)는 true입니다。 |
> | 소수 이상, 왼쪽 값이 오른쪽 값보다 크면 true를 반환하고, 그렇지 않으면 false를 반환합니다 | (A > B)는 false입니다。 |
< | 소수, 왼쪽 값이 오른쪽 값보다 크면 false를 반환하고, 그렇지 않으면 true를 반환합니다 | (A < B)는 true입니다。 |
>= | 소수 이상, 왼쪽 값이 오른쪽 값보다 크거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다 | (A >= B)는 false를 반환합니다。 |
<= | 소수 이하, 왼쪽 값이 오른쪽 값보다 작거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다 | (A <= B)는 true를 반환합니다。 |
다음 예제를 통해 관계 연산자의 사용을 더 잘 이해할 수 있습니다:
a = 21 b = 10 if(a == b) then print("라인 1 - a는b와 같습니다") else print("라인 1 - a는b와 다릅니다") end if(a ~= b) then print("라인 2 - a는b와 다릅니다") else print("라인 2 - a는b와 같습니다") end if ( a < b ) then print("라인 3 - a 가 b보다 작다) else print("라인 3 - a 가 b보다 크거나 같다) end if ( a > b ) then print("라인 4 - a 가 b보다 크다) else print("라인 5 - a 가 b보다 작거나 같다) end -- a와 b의 값을 변경하다 a = 5 b = 20 if ( a <= b ) then print("라인 5 - a 가 b보다 작거나 같다) end if ( b >= a ) then print("라인 6 - b 가 a보다 크거나 같다) end
이 프로그램 실행 결과는 다음과 같습니다:
라인 1 - a 가 b와 다르다 라인 2 - a 가 b와 다르다 라인 3 - a 가 b보다 크거나 같다 라인 4 - a 가 b보다 크다 라인 5 - a 가 b보다 작거나 같다 라인 6 - b 가 a보다 크거나 같다
아래 표는 Lua 언어에서 일반적으로 사용되는 논리 연산자를 나열합니다. A의 값을 true로, B의 값을 false로 설정합니다:
연산자 | 설명 | 예제 |
---|---|---|
and | 논리과 연산자. A가 false인 경우, A를 반환하며, 그렇지 않으면 B를 반환합니다. | (A and B)이 false입니다。 |
or | 논리 이나 연산자. A가 true인 경우, A를 반환하며, 그렇지 않으면 B를 반환합니다. | (A or B)이 true입니다。 |
not | 논리 비 연산자. 조건이 true인 경우, 논리 비는 false입니다. | not(A and B)이 true입니다。 |
아래의 예제를 통해 논리 연산자의 응용을 더 잘 이해할 수 있습니다:
a = true b = true if ( a and b ) then print("a and b - 조건이 true end if ( a or b ) then print("a or b - 조건이 true end print("---------구분선---------" ) -- a와 b의 값을 변경하다 a = false b = true if ( a and b ) then print("a and b - 조건이 true else print("a and b - 조건이 false end if ( not( a and b) ) then print("not( a and b) - 조건이 true else print("not( a and b) - 조건이 false end
이 프로그램 실행 결과는 다음과 같습니다:
a and b - 조건이 true a or b - 조건이 true ---------구분선--------- a and b - 조건이 false not( a and b) - 조건이 true
아래 표는 Lua 언어에서 연결 연산자와 계산 테이블이나 문자열 길이 연산자를 나열합니다:
연산자 | 설명 | 예제 |
---|---|---|
.. | 문자열을 연결하다 | a..b ,a가 "Hello ", b가 "World"인 경우, 출력 결과는 "Hello World"입니다。 |
# | 일원 연산자는 문자열이나 테이블의 길이를 반환합니다。 | #"Hello" 반환 5 |
아래의 예제를 통해 연결 연산자와 계산 테이블이나 문자열 길이 연산자의 응용을 더 잘 이해할 수 있습니다:
a = "Hello " b = "World" print("문자열 a와 b를 연결하다 ", a..b ) print("b 문자열 길이 ",#b ) print("문자열 Test 길이 ",#"Test" ) print("기본 가이드 웹 사이트 주소 길이 ",#"ko.oldtoolbag.com"
이 프로그램 실행 결과는 다음과 같습니다:
문자열 a와 b를 연결 Hello World b 문자열 길이 5 문자열 Test 길이 4 기본 가이드 웹 사이트 주소 길이 14
높은 순서로 낮은 순서로:
^ not - (원시) * / % + - .. < > <= >= ~= == and or
所有的 ^ 和 .. 이외의 이진 연산자는 왼쪽 연결입니다。
a+i < b/2+1 <--> (a+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z)
Lua 언어 연산자의 우선순위를 더 잘 이해하기 위해 다음 예제를 통해 더 깊이 이해할 수 있습니다:
a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d;-- ( 30 * 15 ) / 5 print("(a + b) * c / d 계산 값은 : e = ((a + b) * c) / d; -- (30 * 15 ) / 5 print("((a + b) * c) / d 계산 값은 : e = (a + b) * (c / d);-- (30) * (15/5) print("(a + b) * (c / d) 계산 값은 : e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d 계산 값은 :
이 프로그램 실행 결과는 다음과 같습니다:
(a + b) * c / d 계산 값은 : 90.0 ((a + b) * c) / d 계산 값은 : 90.0 (a + b) * (c / d) 계산 값은 : 90.0 a + (b * c) / d 계산 값은 : 50.0