Lua之循环与流程控制

1.  循环类型

    1.  while循环

        语法:         

while(condition)
do
   statements
end
statements(循环体语句) 可以是一条或多条语句,condition(条件) 可以是任意表达式,在 condition(条件) 为 true 时执行循环体语句。

        例子:

a=10
while( a < 20 )
do
   print("a 的值为:", a)
   a = a+1
end

    2.  for循环

        1.  数值for循环

            语法:

for var=exp1,exp2,exp3 do  
    <执行体>  
end
var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 "执行体"。exp3 是可选的,如果不指定,默认为1。

            例子:            

#!/usr/local/bin/lua  
function f(x)   
    return x*2  
end  
for i=1,f(5) do print(i)  
end

        2.  泛型for循环

            语法:

a = {"one", "two", "three"}
for i, v in ipairs(a) do
    print(i, v)
end
i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。 

            例子:

#!/usr/local/bin/lua  
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}  
for i,v in ipairs(days) do  print(v) end    

    3.  repeat .... util

        repeat...until 循环的条件语句在当前循环结束后判断。

        语法:

repeat
   statements
until( condition )

        例子:

--[ 变量定义 --]
a = 10
--[ 执行循环 --]
repeat
   print("a的值为:", a)
   a = a + 1
until( a > 15 )             

    4.  循环嵌套       

j =2
for i=2,10 do
   for j=2,(i/j) , 2 do
      if(not(i%j))
      then
         break
      end
      if(j > (i/j))then
         print("i 的值为:",i)
      end
   end
end        

2.  循环控制语句

    1.  break语句        

--[ 定义变量 --]
a = 10

--[ while 循环 --]
while( a < 20 )
do
   print("a 的值为:", a)
   a=a+1
   if( a > 15)
   then
      --[ 使用 break 语句终止循环 --]
      break
   end
end

    2.  goto语句 

         goto 语句允许将控制流程无条件地转到被标记的语句处。      

for i=1, 3 do
    if i <= 2 then
        print(i, "yes continue")
        goto continue
    end
    print(i, " no continue")
    ::continue::
    print([[i'm end]])
end  

3.  无限循环 

while( true )
do
   print("循环将永远执行下去")
end

4.  Lua流程控制

    1.  if语句

--[ 定义变量 --]
a = 10;

--[ 使用 if 语句 --]
if( a < 20 )
then
   --[ if 条件为 true 时打印以下信息 --]
   print("a 小于 20" );
end
print("a 的值为:", a); 

    2.  if ... else 语句

--[ 定义变量 --]
a = 100

--[ 检查布尔条件 --]
if( a == 10 )
then
   --[ 如果条件为 true 打印以下信息 --]
   print("a 的值为 10" )
elseif( a == 20 )
then  
   --[ if else if 条件为 true 时打印以下信息 --]
   print("a 的值为 20" )
elseif( a == 30 )
then
   --[ if else if condition 条件为 true 时打印以下信息 --]
   print("a 的值为 30" )
else
   --[ 以上条件语句没有一个为 true 时打印以下信息 --]
   print("没有匹配 a 的值" )
end
print("a 的真实值为: ", a ) 

    3.  if嵌套语句

--[ 定义变量 --]
a = 100;
b = 200;

--[ 检查条件 --]
if( a == 100 )
then
   --[ if 条件为 true 时执行以下 if 条件判断 --]
   if( b == 200 )
   then
      --[ if 条件为 true 时执行该语句块 --]
      print("a 的值为 100 b 的值为 200" );
   end
end
print("a 的值为 :", a );
print("b 的值为 :", b );

 

posted @ 2022-10-19 09:54  奋斗史  阅读(73)  评论(0)    收藏  举报