1Lua 运算符 2运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型: 3 4算术运算符 5关系运算符 6逻辑运算符 7其他运算符 8算术运算符 9下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20: 10 11操作符 描述 实例 12+ 加法 A + B 输出结果 30 13- 减法 A - B 输出结果 -10 14* 乘法 A * B 输出结果 200 15/ 除法 B / A w输出结果 2 16% 取余 B % A 输出结果 0 17^ 乘幂 A^2 输出结果 100 18- 负号 -A 输出结果v -10 19实例 20我们可以通过以下实例来更加透彻的理解算术运算符的应用: 21 22a = 21 23b = 10 24c = a + b 25print("Line 1 - c 的值为 ", c ) 26c = a - b 27print("Line 2 - c 的值为 ", c ) 28c = a * b 29print("Line 3 - c 的值为 ", c ) 30c = a / b 31print("Line 4 - c 的值为 ", c ) 32c = a % b 33print("Line 5 - c 的值为 ", c ) 34c = a^2 35print("Line 6 - c 的值为 ", c ) 36c = -a 37print("Line 7 - c 的值为 ", c ) 38以上程序执行结果为: 39 40Line 1 - c 的值为 31 41Line 2 - c 的值为 11 42Line 3 - c 的值为 210 43Line 4 - c 的值为 2.1 44Line 5 - c 的值为 1 45Line 6 - c 的值为 441 46Line 7 - c 的值为 -21 47关系运算符 48下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20: 49 50操作符 描述 实例 51== 等于,检测两个值是否相等,相等返回 true,否则返回 false (A == B) 为 false。 52~= 不等于,检测两个值是否相等,相等返回 false,否则返回 true< (A ~= B) 为 true。 53> 大于,如果左边的值大于右边的值,返回 true,否则返回 false (A > B) 为 false。 54< 小于,如果左边的值大于右边的值,返回 false,否则返回 true (A < B) 为 true。 55>= 大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false (A >= B) is not true. 56<= 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false (A <= B) is true. 57实例 58我们可以通过以下实例来更加透彻的理解关系运算符的应用: 59 60a = 21 61b = 10 62 63if( a == b ) 64then 65 print("Line 1 - a 等于 b" ) 66else 67 print("Line 1 - a 不等于 b" ) 68end 69 70if( a ~= b ) 71then 72 print("Line 2 - a 不等于 b" ) 73else 74 print("Line 2 - a 等于 b" ) 75end 76 77if ( a < b ) 78then 79 print("Line 3 - a 小于 b" ) 80else 81 print("Line 3 - a 大于等于 b" ) 82end 83 84if ( a > b ) 85then 86 print("Line 4 - a 大于 b" ) 87else 88 print("Line 5 - a 小于等于 b" ) 89end 90 91-- 修改 a 和 b 的值 92a = 5 93b = 20 94if ( a <= b ) 95then 96 print("Line 5 - a 小于等于 b" ) 97end 98 99if ( b >= a ) 100then 101 print("Line 6 - b 大于等于 a" ) 102end 103以上程序执行结果为: 104 105Line 1 - a 不等于 b 106Line 2 - a 不等于 b 107Line 3 - a 大于等于 b 108Line 4 - a 大于 b 109Line 5 - a 小于等于 b 110Line 6 - b 大于等于 a 111逻辑运算符 112 113下表列出了 Lua 语言中的常用逻辑运算符,设定 A 的值为 true,B 的值为 false: 114 115操作符 描述 实例 116and 逻辑与操作符。 如果两边的操作都为 true 则条件为 true。 (A and B) 为 false。 117or 逻辑或操作符。 如果两边的操作任一一个为 true 则条件为 true。 (A or B) 为 true。 118not 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。 not(A and B) 为 true。 119 120实例 121我们可以通过以下实例来更加透彻的理解逻辑运算符的应用: 122 123a = true 124b = true 125 126if ( a and b ) 127then 128 print("a and b - 条件为 true" ) 129end 130 131if ( a or b ) 132then 133 print("a or b - 条件为 true" ) 134end 135 136print("---------分割线---------" ) 137 138-- 修改 a 和 b 的值 139a = false 140b = true 141 142if ( a and b ) 143then 144 print("a and b - 条件为 true" ) 145else 146 print("a and b - 条件为 false" ) 147end 148 149if ( not( a and b) ) 150then 151 print("not( a and b) - 条件为 true" ) 152else 153 print("not( a and b) - 条件为 false" ) 154end 155以上程序执行结果为: 156 157a and b - 条件为 true 158a or b - 条件为 true 159---------分割线--------- 160a and b - 条件为 false 161not( a and b) - 条件为 true 162其他运算符 163下表列出了 Lua 语言中的连接运算符与计算表或字符串长度的运算符: 164 165操作符 描述 实例 166.. 连接两个字符串 a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。 167# 一元运算符,返回字符串或表的长度。 #"Hello" 返回 5 168实例 169我们可以通过以下实例来更加透彻的理解连接运算符与计算表或字符串长度的运算符的应用: 170 171a = "Hello " 172b = "World" 173 174print("连接字符串 a 和 b ", a..b ) 175 176print("b 字符串长度 ",#b ) 177 178print("字符串 Test 长度 ",#"Test" ) 179 180print("w3cschool在线教程网址长度 ",#"www.w3cschool.cn" ) 181以上程序执行结果为: 182 183连接字符串 a 和 b Hello World 184b 字符串长度 5 185字符串 Test 长度 4 186w3cschool在线教程网址长度 16 187运算符优先级 188从高到低的顺序: 189 190^ 191not - (unary) 192* / 193+ - 194.. 195< > <= >= ~= == 196and 197or 198除了^和..外所有的二元运算符都是左连接的。 199 200a+i < b/2+1 <--> (a+i) < ((b/2)+1) 2015+x^2*8 <--> 5+((x^2)*8) 202a < y and y <= z <--> (a < y) and (y <= z) 203-x^2 <--> -(x^2) 204x^y^z <--> x^(y^z) 205实例 206我们可以通过以下实例来更加透彻的了解 Lua 语言运算符的优先级: 207 208a = 20 209b = 10 210c = 15 211d = 5 212 213e = (a + b) * c / d;-- ( 30 * 15 ) / 5 214print("(a + b) * c / d 运算值为 :",e ) 215 216e = ((a + b) * c) / d; -- (30 * 15 ) / 5 217print("((a + b) * c) / d 运算值为 :",e ) 218 219e = (a + b) * (c / d);-- (30) * (15/5) 220print("(a + b) * (c / d) 运算值为 :",e ) 221 222e = a + (b * c) / d; -- 20 + (150/5) 223print("a + (b * c) / d 运算值为 :",e ) 224以上程序执行结果为: 225 226(a + b) * c / d 运算值为 : 90.0 227((a + b) * c) / d 运算值为 : 90.0 228(a + b) * (c / d) 运算值为 : 90.0 229a + (b * c) / d 运算值为 : 50.0
Lua 运算符
Stella981
2021-10-11
1678 0 0
点赞
收藏
评论区
加载中...