高平网站优化公司,wordpress标签拼音,外包做网站要十几万,百度seo推广计划类型包括lua中的循环 while、for、repeat until三种循环方式、pairs和ipairs区别 介绍for循环参数ipairs和pairs whilerepeat until总结 介绍
这里我用while、for、repeat until分别输出1-20之间的奇数 #xff0c;具体的语法可以看下面的代码
for循环
参数
定义一个初始值为start… lua中的循环 while、for、repeat until三种循环方式、pairs和ipairs区别 介绍for循环参数ipairs和pairs whilerepeat until总结 介绍
这里我用while、for、repeat until分别输出1-20之间的奇数 具体的语法可以看下面的代码
for循环
参数
定义一个初始值为startValue的i并且i每次改变值是changeValue直到i的值变为EndValue时执行完当次结束 如果for循环没有changeValue时则默认changeValue为1可以不写
--不隐藏changeValue
for i startValue, EndValue, changeValue doend--隐藏changeValue
for i startValue, EndValue doend例子如下
for i 1, 20 ,1 doif(i%2 1) thenlogError(i ..i..为奇数)end
endfor i 1, 20 doif(i%2 1) thenlogError(i ..i..为奇数)end
end打印如下
ipairs和pairs
ipairs和pairs都是遍历表中数据这两个的区别主要是pairs可以识别多种类型的键值对但是ipairs只能识别数字为键的数据表。
下面是两种方式的打印这里我们打印纯数字表、纯字符串表、纯boolean表以及多数据类型的表以及多类型key、value的表
打印纯数字表
--测试表格1
local tabTest1 {1,2,3,4,5}--测试表格2
local tabTest2 {1,2,a,3,true}--测试表格3
local tabTest3 {1str,2str,3str,4str,5str}--测试表格4
local tabTest4 {true,false,true,false,false}--测试表格5
local tabTest5 {[1] 10,[a] str,[true] false,[2] asd,
}for k,v in pairs(tabTest1) dologError(k ..tostring(k).., v ..tostring(v))
endfor k,v in ipairs(tabTest1) dologError(k ..tostring(k).., v ..tostring(v))
end打印纯字符串类型的方式
--测试表格1
local tabTest1 {1,2,3,4,5}--测试表格2
local tabTest2 {1,2,a,3,true}--测试表格3
local tabTest3 {1str,2str,3str,4str,5str}--测试表格4
local tabTest4 {true,false,true,false,false}--测试表格5
local tabTest5 {[1] 10,[a] str,[true] false,[2] asd,
}for k,v in pairs(tabTest1) dologError(k ..tostring(k).., v ..tostring(v))
endfor k,v in ipairs(tabTest1) dologError(k ..tostring(k).., v ..tostring(v))
end打印纯boolean表数据
--测试表格1
local tabTest1 {1,2,3,4,5}--测试表格2
local tabTest2 {1,2,a,3,true}--测试表格3
local tabTest3 {1str,2str,3str,4str,5str}--测试表格4
local tabTest4 {true,false,true,false,false}--测试表格5
local tabTest5 {[1] 10,[a] str,[true] false,[2] asd,
}for k,v in pairs(tabTest4) dologError(k ..tostring(k).., v ..tostring(v))
endfor k,v in ipairs(tabTest4) dologError(k ..tostring(k).., v ..tostring(v))
end打印多类型值的表
--测试表格1
local tabTest1 {1,2,3,4,5}--测试表格2
local tabTest2 {1,2,a,3,true}--测试表格3
local tabTest3 {1str,2str,3str,4str,5str}--测试表格4
local tabTest4 {true,false,true,false,false}--测试表格5
local tabTest5 {[1] 10,[a] str,[true] false,[2] asd,
}for k,v in pairs(tabTest2) dologError(k ..tostring(k).., v ..tostring(v))
endfor k,v in ipairs(tabTest2) dologError(k ..tostring(k).., v ..tostring(v))
end打印多类型键值对的表
--测试表格1
local tabTest1 {1,2,3,4,5}--测试表格2
local tabTest2 {1,2,a,3,true}--测试表格3
local tabTest3 {1str,2str,3str,4str,5str}--测试表格4
local tabTest4 {true,false,true,false,false}--测试表格5
local tabTest5 {[1] 10,[a] str,[true] false,[2] asd,
}for k,v in pairs(tabTest5) dologError(k ..tostring(k).., v ..tostring(v))
endfor k,v in ipairs(tabTest5) dologError(k ..tostring(k).., v ..tostring(v))
endwhile
while就是根据后面的条件判定是否执行while内部的方法代码condition 为判定条件判定成功则走完这一边之后不在继续执行。
--while condition do
-- statements
--endlocal a 1
while(a 20) do if(a%2 1) thenlogError(奇数..a)enda a 1
endrepeat until
repeat until判定条件在后置所以当满足条件时不执行上述循环体代码
--repeat
-- 循环体
--until(condition)local a 1
repeat if(a%2 1) thenlogError(奇数..a)enda a 1
until(a 20) 总结
while和for就是可以理解成前置条件语句满足时执行完毕后不在继续执行。 repeat until理解为后置语句所以当满足条件时不执行。