• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua脚本学习7

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Lua 循环

很多情况下我们需要做一些有规律性的重复操作,因此在程序中就需要重复执行某些语句。

一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。

循环语句是由循环体及循环的终止条件两部分组成的。

Lua 语言提供了以下几种循环处理方式:

循环类型 描述
while 循环 在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为 true。
for 循环 重复执行指定语句,重复次数可在 for 语句中控制。
repeat...until 重复执行循环,直到 指定的条件为真时为止
循环嵌套 可以在循环内嵌套一个或多个循环语句(while do ... end;for ... do ... end;repeat ... until;)

循环控制语句

循环控制语句用于控制程序的流程, 以实现程序的各种结构方式。

Lua 支持以下循环控制语句:

控制语句 描述
break 语句 退出当前循环或语句,并开始脚本执行紧接着的语句。

无限循环

在循环体中如果条件永远为 true 循环语句就会永远执行下去,以下以 while 循环为例:


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


loop.lua内容


-- while循环
a = 5;
while(a > 0) do
print(a);
a = a - 1;
end


print();


---------------------------------------------------
--[[ for循环
for var=exp1,exp2,exp3 do    --var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
    <执行体>  
end  
]]
for i = 1,10 do
print(i);
end


function f(x)
print("function");
return x*2;
end
-- for的三个表达式在循环开始前一次性求值,以后不再进行求值。比如上面的f(x)只会在循环开始前执行一次,其结果用在后面的循环中。
for i = 1,f(5) do   --循环前,先调用f(5) 得出10
print(i);
end






-- for循环table


days = {"Suanday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}  
for k,v in ipairs(days) do
print(v);
end


for k,v in pairs(days) do
print(v);
end


--[[
在lua中pairs与ipairs两个迭代器的用法相近,但有一点是不一样的:
pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;
但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key
]]


-------------------------------------------------
-- repeat .. until循环


a = 10;
repeat
print("value is :",a);
a = a+1;
until(a > 15)






----------------------------------------------
--循环嵌套
for x = 1,5 do
print("now is ",x);
for i = 1,2 do
print("loop",i .. " times");
end
end




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's value is",i);
end
end
end























鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap