1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Lua——循环和流程控制(if for while break goto repeat...until)

Lua——循环和流程控制(if for while break goto repeat...until)

时间:2020-09-08 09:08:42

相关推荐

Lua——循环和流程控制(if for while break goto repeat...until)

文章目录

一、if语句1.基本语法知识2.演示示例二、循环语句1.while循环2.for循环3.repeadt...until循环

一、if语句

1.基本语法知识

if语句要注意,在Lua里面0为true,其他为假

语法为:

if("条件")then"操作语句"elseif(条件)then"操作语句"else"操作语句"end

2.演示示例

示例:

if(0)thenprint("0为true")elseprint("0为false")endif( 1== 2)--注意if语句和elseif语句都要配合then,else语句不需要配合thenthenprint("1 == 2为true")elseif(1 == 3)thenprint("1 == 3为true")elseprint("1既不等于2也不等于3")end

运行结果:

二、循环语句

1.while循环

(1)基本语法

while(condition)dostatementsend

(2)示例演示

i=0while(i < 10)doprint("i值为:",i)i = i+1--没有++语法或者+=语法end

运行结果:

2.for循环

(1)基本语法

①数值for循环语法

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

for var=exp1,exp2,exp3 do <执行体> end

②泛型for循环

泛型 for 循环通过一个迭代器函数来遍历所有值,类似foreach 语句。

i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。

a = {"one", "two", "three"}for i, v in ipairs(a) doprint(i, v)end

(2)示例演示

--数值for循环--没有指定步长,步长默认为1print("第一个数值for循环:")for i=1,10doprint(i)end--数值for循环--步长指定为2print("第二个数值for循环:")for i=1,10,2doprint(i)end--泛型for循环print("第一个泛型for循环:")table1={"abc","def","ghi","jkl","mno"}for i,v in ipairs(table1)doprint(i,v)end--泛型for循环print("第二个泛型for循环:")for i,v in ipairs(table1)doprint(v)end--[[--不允许指定索引的开始位置for i=2,v in ipairs(table1)doprint(i,v)end--]]

运行结果:

3.repeadt…until循环

(1)基本语法

repeadt类似C语言的do…while循环

语法:

repeatstatementsuntil( condition )

(2)示例演示

i=1repeatprint("i值为:",i)i = i+1until(i > 10)

运行结果:

4.break和goto

break和goto和C语言的作用一样,break跳出最内层循环,

goto跳转到其他语句,语法为:

:: Label ::goto Label

这里作简单演示

--break演示i=1while(0)--0为true,死循环doprint("i值为:",i)i = i+1if(i == 5)thenbreakendend--goto演示::here::print("这是here下的第一个语句")print("这是here下的第二个语句")while(0)doprint("i值为:",i)i = i+1if(i == 10)thengoto hereendif(i == 11)thenprint("又一次进入第二个while循环")breakendendprint("这是带goto的while外的语句")

运行结果:

goto到了here语句之后,会从here那里继续向下一步一步的执行,所以会再次到第二个while循环里面

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。