English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lua 연산자

연산자는 특별한 기호로, 해석자에게 특정 수학적이거나 논리적 연산을 수행하도록 지시합니다. 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