루아 연산자
연산자는 인터프리터에게 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 데 사용되는 특수 기호입니다. Lua는 다음 연산자 유형을 제공합니다.
산술 연산자
관계 연산자
논리 연산자
기타 연산자
산술 연산자
다음 표는 Lua 언어에서 일반적으로 사용되는 산술 연산자, 집합 A의 값은 10이고 B의 값은 20입니다.
操作符 | 描述 | 实例 |
---|---|---|
+ | 加法 | A + B 输出结果 30 |
- | 减法 | A - B 输出结果 -10 |
* | 乘法 | A * B 输出结果 200 |
/ | 除法 | B / A w输出结果 2 |
% | 取余 | B % A 输出结果 0 |
^ | 乘幂 | A^2 输出结果 100 |
- | 负号 | -A 输出结果v -10 |
예
다음 예를 사용하면 산술 연산을 더 철저하게 이해할 수 있습니다. 연산자 적용:
a = 21 b = 10 c = a + b print("Line 1 - c 的值为 ", c ) c = a - b print("Line 2 - c 的值为 ", c ) c = a * b print("Line 3 - c 的值为 ", c ) c = a / b print("Line 4 - c 的值为 ", c ) c = a % b print("Line 5 - c 的值为 ", c ) c = a^2 print("Line 6 - c 的值为 ", c ) c = -a print("Line 7 - c 的值为 ", c )
위 프로그램의 실행 결과는 다음과 같습니다.
Line 1 - c 的值为 31 Line 2 - c 的值为 11 Line 3 - c 的值为 210 Line 4 - c 的值为 2.1 Line 5 - c 的值为 1 Line 6 - c 的值为 441 Line 7 - c 的值为 -21
관계 연산자
다음 표는 Lua 언어에서 일반적으로 사용되는 관계 연산자를 나열합니다. A의 값을 10으로 설정합니다. B의 값은 20입니다.
操作符 | 描述 | 实例 |
---|---|---|
== | 等于,检测两个值是否相等,相等返回 true,否则返回 false | (A == B) 为 false。 |
~= | 不等于,检测两个值是否相等,相等返回 false,否则返回 true< | (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("Line 1 - a 等于 b" ) else print("Line 1 - a 不等于 b" ) end if( a ~= b ) then print("Line 2 - a 不等于 b" ) else print("Line 2 - a 等于 b" ) end if ( a < b ) then print("Line 3 - a 小于 b" ) else print("Line 3 - a 大于等于 b" ) end if ( a > b ) then print("Line 4 - a 大于 b" ) else print("Line 5 - a 小于等于 b" ) end -- 修改 a 和 b 的值 a = 5 b = 20 if ( a <= b ) then print("Line 5 - a 小于等于 b" ) end if ( b >= a ) then print("Line 6 - b 大于等于 a" ) end
위 프로그램의 실행 결과는 다음과 같습니다.
Line 1 - a 不等于 b Line 2 - a 不等于 b Line 3 - a 大于等于 b Line 4 - a 大于 b Line 5 - a 小于等于 b Line 6 - b 大于等于 a
논리 연산자
다음 표에는 Lua 언어에서 일반적으로 사용되는 논리 연산자가 나열되어 있습니다. A 값을 true로 설정하고 B 값을 false로 설정합니다.
操作符 | 描述 | 实例 |
---|---|---|
and | 逻辑与操作符。 如果两边的操作都为 true 则条件为 true。 | (A and B) 为 false。 |
or | 逻辑或操作符。 如果两边的操作任一一个为 true 则条件为 true。 | (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("w3cschoolphp中文网网址长度 ",#"www.w3cschool.cc" )
위 프로그램의 실행 결과는:
连接字符串 a 和 b Hello World b 字符串长度 5 字符串 Test 长度 4 w3cschoolphp中文网网址长度 16
연산자 우선순위
높은 것부터 낮은 것부터:
^ not - (unary) * / + - .. < > <= >= ~= == 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 ) e = ((a + b) * c) / d; -- (30 * 15 ) / 5 print("((a + b) * c) / d 运算值为 :",e ) e = (a + b) * (c / d);-- (30) * (15/5) print("(a + b) * (c / d) 运算值为 :",e ) e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d 运算值为 :",e )
위 프로그램의 실행 결과는 다음과 같습니다. 🎜>아아아아