lua系统学习09-控制结构

控制结构

IF结构

function nestIF()
    booleanCondition=1;
    if booleanCondition==1 then
        print("条件为True")
    else
        print("条件为false")
    end
end

 IF-ELSE结构

 

---nest Ifelse
    age=tonumber(io.read())
    if age>60 then
        print("老年人")
    elseif age>50 then
        print("中年人")
    elseif age>30 then
        print("青年人")
    elseif age>20 then
        print("小伙子")
    elseif age>10 then
        print("青春期")
    elseif age>0 then
        print("幼童")
    end

与C#一样 lua中也有ElseIF结构 用来代替IF{}Else{ if{ }}写法。
使用elseif还不用在每次逻辑分支后写END。

 

While结构

while指直到condition为false的时候退出循环,在while、repeat、for这种循环体中可以用break跳出循环。

function whileStruct()
    num=tonumber(io.read())
    condition=(num>5)
    while condition do
        print("请输入数字")
        num=tonumber(io.read())---缺少 TryParse
        condition=(num>5)
    end
    print("退出循环Break")
end

此片段让用户每次出入一个数,直到输入的数小于5退出循环 结束程序。

 

结构:

while condition do
end

repeat循环结构

repeat指直到condition为true的时候退出循环。
在下面的示例中condition=》num==0

 

function repeatStruct()
    local num=10
    print(num)
    repeat
        num=num-1
        print(num)
    until num==0
    print("直到num等于0  条件为true时候退出循环")
end

for循环结构

lua 中for也是有三个参数列表 跟c#一样。在lua中 i1,i2,step i1至i2以step作为步长 每次循环完增加step

 

function forStruct()
   ---lua 中for也是有三个参数列表 跟c#一样。在lua中 i1,i2,step  i1-i2以step作为步长 每次循环完增加step
   ---若是step不指定 则默认步长为1
   fornum=0
   for i = 1, 10,2 do
           print(i)
       fornum=fornum+1
   end
   print(("在i=1,到条件值10,每次循环以步长为2进行递增,共循环".. fornum))

   ---无限循环无终止
   i=2
   for  i= 1, math.huge do
       if i==10 then
           print(i)
           break
       end
   end
   print(i)

end
forStruct()

for外部print打印的i的结果为2

---在for的参数列表中声明i 默认i是for局部变量
---如果在for外声明了i,然后在for的参数列表中对i再进行初始化使用,当i结束的时候 会把原先外部的i的初始值重新赋值回去,好tm奇怪。
---想了一想,其实错了,记得局部变量跟全局变量的优先级吗,他们不是指向一个内存地址,所以所作的操作是不同的对象。这就是真正原因,、
---在for中的i隐式的定义了local,外部的i是全局变量,局部总是比全局优先,当局部域销毁时,局部变量随它被回收。

总结

lua 中for也是有三个参数列表 跟c#一样。在lua中 i1,i2,step i1至i2以step作为步长, 若是step不指定 则默认步长为1。 每次循环完增加step。
在for中的i隐式的定义了local,外部的i是全局变量,局部总是比全局优先。当局部域销毁时,局部变量随它被回收。

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/programming-life/lua/3434
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
lua系统学习09-控制结构
控制结构 IF结构 function nestIF() booleanCondition=1; if booleanCondition==1 then print("条件为True") else print("……
<<上一篇
下一篇>>
文章目录
关闭
目 录