Lua极简入门(四)——条件判断
2019-10-20 本文已影响0人
李小磊_0867
表达式
表达式是条件判断的基础,Lua的表达式同其他语言类似,只是表示方式上有一些变化。其表达式主要分为如下几种
-
算数表达式
二元表达式:
+
,-
,*
,^(指数)
,%
一元表达式:
-
-
关系操作符,所有关系运算符的操作结果都是true或false
<
、>
、<=
、>=
、==(相等性测试)
、~=(不等性测试)
-
逻辑操作符,前面介绍过逻辑运算符将
false
、nil
视为假,其他均为真逻辑运算符主要包括:
and
、or
、not
对于
and
第一个操作数为假,则返回第一个操作数,否则返回第二个;or
第一个操作数为真,则返回第一个,否则返回第二个,not
只返回true
或false
。基于Lua的逻辑运算特性,有以下特殊的作用,也是编码的一些小特性。x = x or v -- 初始化赋值,初始时指定值为v,为了更进一步说明,该语句等价于下述代码 if not x then x = v end -- 三元表达式,Lua没有三元表达式,但是可以通过一下特性实现 (a and b) or c -- 该语句等价于java中的 a ? b : c。当a为假时,返回第一个操作数a,剩余 a or c, -- 而a为假,则返回c;当a为真时,返回第二个操作数b,剩余b or c,b为真,则返回b。 -- 根据上述特性,可以使用逻辑运算符实现取最大数,前提是操作数不为nil max_value = (x > y) and x or y -- 当x>y为真时,则返回第二个操作数x,x为真,所以返回x; -- 当x>y为假时,返回第一个操作数,剩余(x>y) or y,而第一个操作数为假,则返回y。 -- 从而实现取最大数,最小数和这个表达式相反。
条件判断
条件语句是依据给定的条件进行判断,如果条件满足,则执行分支语句,当不满足时,执行另外得分支语句。正是因为条件判断语句,才使得各种任务和业务得以实现,条件判断也是业务程序实现的基石。

比如:对于会员来说,年底给会员发送春节短信,当会员消费超过一千时,发送红包,使用
if
语句实现:
userConsume = 700
if userConsume >= 1000 then
print("send a gift to user")
end
print("blessing sms")
-->> blessing sms
如果if
条件判断为true
,则执行then
及end
之间的语句,否则就跳过。可以给if
添加else
语句,这样就会出现两个不同分支,满足true
,则执行if
语句,否则就执行else
语句。
userConsume = 700
if userConsume >= 1000 then
print("send a gift to user")
else
print("your consume is not enough")
end
print("blessing sms")
当会员制度细节更具体时,需要嵌套if
完成,Lua中提供了elseif
,可以实现嵌套if
的工作:
userConsume = 800
if userConsume >= 500 then
print("send a 10 yuan gift to user")
elseif userConsume >= 800 then
print("send a 20 yuan gift to user")
elseif userConsume >= 1000 then
print("send a 30 yuan gift to user")
else
print("your consume is not enough")
end
print("blessing sms")
在条件判断的执行过程中,当有一个if
命中,则后续的条件判断都不再执行,因此上述语句中,发送了10元红包。条件判断需要根据具体的需求进行调整,使得业务逻辑不存在问题。
条件判断的语法规则:
if <条件判断1> then
<执行语句1>
elseif <条件判断2> then
<执行语句2>
[elseif...]
else
<else执行语句>
end