当前位置:网站首页>九、一起学习Lua 运算符
九、一起学习Lua 运算符
2022-08-06 05:25:00 【m0_66404702】
Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 其他运算符
算术运算符
下表列出了 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 的值为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.xxxxxx.com" )以上程序执行结果为:
连接字符串 a 和 b Hello World
b 字符串长度 5
字符串 Test 长度 4
菜鸟教程网址长度 14运算符优先级
从高到低的顺序:
^
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 )以上程序执行结果为:
(a + b) * c / d 运算值为 : 90.0
((a + b) * c) / d 运算值为 : 90.0
(a + b) * (c / d) 运算值为 : 90.0
a + (b * c) / d 运算值为 : 50.0边栏推荐
猜你喜欢

搭建自己的V Rising自建服务器,以及常见的V Rising服务器问题解决方案

LVS负载均衡服务器搭建

树莓派安装高版本Chromium和Chromedriver

geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (一)(小白必备:超详细教程)

十二、一起学习Lua table(表)

基于肌电信号(sEMG) 的深度学习手势分类

Redis三种模式——主从复制,哨兵模式,集群

线程的六种状态

Docker 快速安装&搭建 Mysql 环境

Kindle接入HomeAssistant:实现锁屏壁纸显示HA内设备信息并在HA内获取Kindle电量
随机推荐
mysql数据库
shell之iptables 防火墙
ELK日志分析系统(一)之ELK原理
KVM虚拟机管理(扩容,加CPU等)
MySql data table structure optimization summary
Cesium 填坑之路
shell之条件测试
TCP protocol to understand and use four times and three times handshake
全网最全面的SSM整合(没有之一)
什么是API
外连接,exists存在,(DML):用SQL录入数据,用SQL删除数据,用SQL更新数据
shell脚本编写(3.修改文件内容)
集合应用,产生10000个0-9之间的随机数字,统计每个数字出现的个数。
CPU平均负载 load average
LVS load balancing server construction
动态规划之最长连续递增序列
正则表达式
Difference between ordinary factory class and abstract factory class
在这个数字化的时代,如何做好用户体验与应用性能管理
ClickHouse 物化视图