美文网首页Lua教程
Lua极简入门(四)——条件判断

Lua极简入门(四)——条件判断

作者: 李小磊_0867 | 来源:发表于2019-10-20 17:08 被阅读0次

表达式

表达式是条件判断的基础,Lua的表达式同其他语言类似,只是表示方式上有一些变化。其表达式主要分为如下几种

  • 算数表达式

    二元表达式:+-*^(指数)%

    一元表达式:-

  • 关系操作符,所有关系运算符的操作结果都是true或false

    <><=>===(相等性测试)~=(不等性测试)

  • 逻辑操作符,前面介绍过逻辑运算符将falsenil视为,其他均为真

    逻辑运算符主要包括:andornot

    对于and 第一个操作数为假,则返回第一个操作数,否则返回第二个;or第一个操作数为真,则返回第一个,否则返回第二个, not只返回truefalse。基于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,则执行thenend之间的语句,否则就跳过。可以给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

相关文章

  • Lua极简入门(四)——条件判断

    表达式 表达式是条件判断的基础,Lua的表达式同其他语言类似,只是表示方式上有一些变化。其表达式主要分为如下几种 ...

  • 编程极简入门(python)-05-条件判断

    前言 现在我们已经知道了什么是变量, 这节将继续介绍另外一个核心概念--条件判断学完之后, 你的程序将变得更“聪明...

  • Lua极简入门(六)——函数

    在完成一些编码工作时,总会有一些相似或者重复的工作。比如在结算工资时,员工的工资不同,但缴纳税、社保等计算是一个相...

  • Lua极简入门(五)——循环

    在编写代码的过程中,总有许多迭代的代码需求,如计算从1连加到10的计算,如果数字足够大,使用表达式计算的方法,将无...

  • Lua极简入门(二)——基础

    lua不需要使用;分割语句,但使用了;进行分割语句,也是合法的。一般情况下,一行代码表示一个语句,当行内出现多个语...

  • Lua极简入门——类型(一)

    nil 该类型,只有一个值nil,主要用于区分其他任何值,它代表了没有任何有效值。当一个变量第一次赋值前,默认为n...

  • Lua极简入门——类型(二)

    string 字符串标识一个字符序列,采用8位编码。Lua字符串是不可变的值,创建后不能再修改内部字符,如果要进行...

  • Lua极简入门(一)——Lua开发环境搭建

    进入 Lua官方下载 页面下载相应版本 将下载的压缩包(lua-5.3.5_Win64_bin.zip)解压到C:...

  • Lua极简入门——类型(三)table

    table实现了关联数组,是一种具有特殊索引方式的数组。其具体特点以及使用特性如下。 可以使用整数索引值进行索引,...

  • Lua极简入门(六)——函数定义

    对于Lua,定义个函数,非常简单。只需要使用function语句,接下来需要明确函数名、括号,参数列表,最后以en...

网友评论

    本文标题:Lua极简入门(四)——条件判断

    本文链接:https://www.haomeiwen.com/subject/rmramctx.html