下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:
我们可以通过以下实例来更加透彻的理解算术运算符的应用:
--算术运算符 + - * /(除法) %(取余) ^(幂) -(负号) //(整除)
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 = 5
b = 2
print("除法运算 - a/b 的值为 ", a / b )
print("整除运算 - a//b 的值为 ", a // b
以上程序执行结果为:
除法运算 - a/b 的值为 2.5
整除运算 - a//b 的值为 2
下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:
我们可以通过以下实例来更加透彻的理解关系运算符的应用:
--[[--]]
--关系运算符
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:
我们可以通过以下实例来更加透彻的理解逻辑运算符的应用:
--逻辑运算符
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="hello"
b="world"
print("连接字符串 a 和 b ",a..b)
print("b 字符串长度 ",#b )
print("字符串 test 的长度 ",#'test' )
print("字符串 www.baidu.com 的长度 ",#'www.baidu.com' )
print("字符串 乌鸡哥的的长度",#"乌鸡哥" )
以上程序执行结果为:
连接字符串 a 和 b helloworld
b 字符串长度 5
字符串 test 的长度 4
字符串 www.baidu.com 的长度 13
字符串 乌鸡哥的的长度 9
注意:
从高到低的顺序:
除了 ^ 和 … 外所有的二元运算符都是左连接的。
--运算符优先级 除了 ^ 和 .. 外所有的二元运算符都是左连接的
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 )
以上程序执行结果为:
(a + b) * c / d 运算值为 : 90.0
((a + b) * c) / d 运算值为 : 90.0
(a + b) * (c / d) 运算值为 : 90.0
a + (b * c) / d 运算值为 : 50.0
注意:
rx = 1
ry = 2
rz = 3
print(rx and ry, ry and rx) --输出2 1
print(rx or ry, ry or rx) --输出1 2
print(rx and ry or rz) --输出2
print(rx or ry and rz) --输出1
以上就是今天要讲的内容,本文介绍了Lua运算符,运算符的熟练运用,学会这些对于以后的操作会变得非常的便捷,所以我们务必掌握。另外如果上述有任何问题,请懂哥指教,不过没关系,主要是自己能坚持,更希望有一起学习的同学可以帮我指正,但是如果可以请温柔一点跟我讲,爱与和平是永远的主题,爱各位了。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_44918090/article/details/123323876
内容来源于网络,如有侵权,请联系作者删除!