Lua流程控制

  1. 赋值语句
    1. 基本赋值
    2. 多语句赋值
    3. 局部变量
  • 流程控制
  • 循环
    1. while循环
    2. for循环
      1. 数值循环
      2. 范式循环
    3. repeat
    4. 循环嵌套
  • 赋值语句

    基本赋值

    a = "hello" .. "world"
    

    多语句赋值

    x, y = y, x -- swap 'x' for 'y'
    a, b, c = 0 -- a=0,b跟c为nil
    

    局部变量

    local创建一个局部变量,可以通过do…end语句来控制变量范围

    do
    local a2 = 2*a
    local d = sqrt(b^2 - 4*a*c)
    x1 = (-b + d)/a2
    x2 = (-b - d)/a2
    end -- scope of 'a2' and 'd' ends here
    

    流程控制

    lua中,false和nil为假,true和非nil为真
    lua中提供了以下流程控制语句

    --if
    if(布尔表达式)
    then
       --[ 在布尔表达式为 true 时执行的语句 --]
    end
    
    --if...else...
    if(布尔表达式)
    then
       --[ 布尔表达式为 true 时执行该语句块 --]
    else
       --[ 布尔表达式为 false 时执行该语句块 --]
    end
    
    if conditions then
        then-part
    elseif conditions then
        elseif-part
    
    --if...if
    if( 布尔表达式 1)
    then
       --[ 布尔表达式 1 为 true 时执行该语句块 --]
       if(布尔表达式 2)
       then
          --[ 布尔表达式 2 为 true 时执行该语句块 --]
       end
    end
    

    循环

    while循环

    while(condition)
    do
       statements
    end
    

    for循环

    for循环分两类,一类是数值循环,一类是范式循环

    数值循环
    for var=exp1,exp2,exp3 do  
        <执行体>  
    end
    

    var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 “执行体”。
    exp3 是可选的,如果不指定,默认为1。

    --数值循环
    for i=1,f(x) do
        print(i)
    end
    
    for i=10,1,-1 do
        print(i)
    end
    
    范式循环
    --范式循环,打印数组a的所有值  
    a = {"one", "two", "three"}
    for i, v in ipairs(a) do
        print(i, v)
    end
    

    repeat

    repeat
        statements
    until(condition)
    

    循环嵌套

    while(condition)
    do
       while(condition)
       do
          statements
       end
       statements
    end
    

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 68813175@qq.com