这里写目录标题
判断
for 循环
数值遍历
for exp1,exp2,exp3 do//todo
end
上述代码是指:从exp1 到exp2 以exp3为步长进行循环并执行todo代码,exp3默认为1,其实exp2可以是函数,但是只会执行一次(计算出结果,就不会再次执行了).
for i=1,f(x)doprint(i)endfor i=10,1,-1doprint(i)end
泛型遍历
遍历数组
a ={"one","two","three"}for i, v inipairs(a)doprint(i, v)end
遍历对象
b ={
t1='rt1',
t2=2}for i, v inpairs(b)doprint(i, v)end
ipairs 和 pairs的异同
相同:
都是能遍历集合(表、数组),两者均优先按顺序输出没有key的值;
不同:
ipairs从第一个数字key开始,依次输出所有的key+1的键值,遇到字母下标并不会结束遍历,只是不输出而已,如果遇到nil则退出;
pairs无序输出字母类型key或者数字类型key的键值,遇到nil不输出,但不会停止遍历;
- ipairs会按照key的顺序输出数据,遇到不连续的数据停止输出,pairs会无序输出所有数据
- pairs和ipairs都会输出没有key的数据,ipairs会跳过字符串的key,pairs会输出所有的数据,优先输出不带key的按照顺序,带key的无序输出
- ipairs遇到nul会停止,pairs不会停止
- key为数组才是数组下标,key为字符串数字则是字符串下标
table ={["1"]="11",[1]="1",[3]="3"}print("-----------ipairs----------------")for k,v inipairs(table)doprint(k,v)endprint("-----------pairs----------------")for k,v inpairs(table)doprint(k,v)end-----------ipairs----------------11-----------pairs----------------1111133
参考链接
while 循环
while(condition)dostatement(s)end
statements(循环体语句) 可以是一条或多条语句,condition(条件) 可以是任意表达式,在 condition(条件) 为 true 时执行循环体语句,建议有逻辑将condition修改为false,否则将死循环。
repeat循环
repeat
statements
until( condition )
循环条件判断语句(condition)在循环体末尾部分,所以在条件进行判断前循环体都会执行一次。
如果条件判断语句(condition)为 false,循环会重新开始执行,直到条件判断语句(condition)为 true 才会停止执行。
类似于其他语言中的dowhile循环,statements一定会 执行一次,当condition为真则跳出循环(区分while循环)
goto
基础用法
goto FLAG;
a =123::FLAG::;print(a)
注意事项
- 不能从外部goto到代码块中
- 不同跳出或者跳入一个函数中(因为函数也是一个代码块)
版权归原作者 shao.zq 所有, 如有侵权,请联系我们删除。