lua运算符

2019-11-14  本文已影响0人  亮亮同学

每天收获小进步,积累起来就是大进步;每天收获小幸福,积攒起来便成大幸福。

一,赋值运算符 (=)

将右值 赋给左值(变量)

local a = 2
local b = 4

print(a)  --      -->2
print(b)  --      -->4

--也可以写成 
local  a,b = 2,4
print(a)  --      -->2
print(b)  --      -->4


local  a,b,c = 1,2   --左右对称赋值  没有值 即为空值(nil)

print(a)  --      -->1
print(b)  --      -->2
print(c)  --      -->nil

二,算数运算符

常用算数运算符包括 :
加(+),减(-),乘(*),除(/), 取负数(单目减法 - ,即把减号当做一元运算符使用),取余(%),指数运算符(^)

测试代码

local  a = 10
local  b = 10   
print(a+b)--    -->20

print(a-b)--    -->0

print(a*b)--    -->100

print(a/b)--    -->1

print(-a)--    -->-10

print(a%b)--    -->0

print(a^2)--    -->100

三,关系运算符

lua中提供了以下关系运算符,这些关系与氨酸的结果都是Boolean(布尔型)类型

< (小于)         >(大于)       <=(小于等于)      >=(大于等于)      ==(等于)       ~= (不等于)

代码:

local  a = 10
local  b = 20 

print(a > b)--  -->false

print(a < b)--  -->true

print(a ==  b)--  -->false

print(a ~= b)--  -->true

print(a >= b)--  -->false

print(a <= b)--  -->true

四,逻辑运算符

lua 的逻辑运算符 有 and, or , not

and: 逻辑与操作符 。 若 A 为 false,则返回 A,否则返回 B。(遍历所有变量值 返回值为false的变量值 如果变量值都为真(true)则返回 最右侧变量值)

窍门 : 有假返回假 有真返回最右值

local a = false  
local b = true
print(a and b)   --返回a(false)

print(b and a )  --返回a(false)

local a = true  
local b = true
print(a and b)   --返回b(true)

local a = 1  
local b = 2
local c = 3
print(a and b )   --返回b(2)

print(b and a and c)  --返回c(3)

or:逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。
窍门:有真(true)反真(tue),无假反最左值

local a = false  
local b = true
print(a or b)   --返回b(true)
print(b or a )  --返回b(true)


local a = 1  
local b = 2
local c = 3
print(a or b )   --返回a(1)

print(b or a or c)  --返回b(2)

not:逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false

local a = false  
local b = true
print(not a)   --true

print(not b )  --false


local a = 1  

print(not a )   --返回false

四,连接操作符(..)

我们可以用两个点来做字符串的连接 如果操作数中出现数值那么lua语言会把数值转换为字符串

local  a = 10
print(a.."你好")

--      -->10你好

五,运算符优先级,

从高到低的顺序:优先级高的先做运算 比如 有加 有乘 先算乘

^
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)

cocos2d-x技术群:117871561

上一篇下一篇

猜你喜欢

热点阅读