Lua 运算符

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 输出结果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 的值为10B 的值为 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) is not true. <= 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false (A <= B) is 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 的值为 trueB 的值为 false 操作符 描述 实例 and 逻辑与操作符。 如果两边的操作都为 true 则条件为 true (A and B)falseor 逻辑或操作符。 如果两边的操作任一一个为 true 则条件为 true (A or B)truenot 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 falsenot(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("w3cschool在线教程网址长度 ",#"www.w3cschool.cn" ) 以上程序执行结果为: 连接字符串 a 和 b Hello World b 字符串长度 5 字符串 Test 长度 4 w3cschool在线教程网址长度 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 ) 以上程序执行结果为: (a + b) * c / d 运算值为 : 90.0 ((a + b) * c) / d 运算值为 : 90.0 (a + b) * (c / d) 运算值为 : 90.0 a + (b * c) / d 运算值为 : 50.0
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

thinkphp3.2.3模板渲染支持三元表达式

thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa

Java运算符

Java中的运算符分类:算术运算符二元运算符,,\,/,%一元运算符,赋值运算符\扩展运算符,,\,/关系运算符\,<,,<,,! instanceof逻辑运算符&&,||,!,^位运算符&,|,^,~,,<<,条件运算符

Object Pascal 运算符,常量,变量

不区分大小写赋值运算符:(Java里是)例如varI:Integer;I:30;比较运算符\,<,<,,<,特别注意:判等是(Java里是)判不等是<(Java里是!)逻辑运算符andornot算术运算符,,\,/(浮点数),

Python运算符

1.运算符1.1运算符的概念运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例如:23,其操作数是2和3,⽽运算符则是“”1.2运算符的分类算术运算符赋值运算符⽐较运算符(关系运算符)逻辑运算符条件运算符(三元运算符)2.算术运算符

Lua 运算符 - HelloWorld