顺便说一下lua不支持switch、case语法,所以多种情况的if then else比较常见。
1.if then else
a = 1
if a == 1 then
print("a==1")
else
print("a!=1")
end
2.while
a = 10
while a > 0 do
a = a - 1
end
print(a) -->0
3.repeat
这个和C++的do while类似,区别是最后的条件是需要满足条件才退出循环,而do while是不满足条件退出循环。
a = 10
repeat
a = a - 1
until a <= 0
print(a) -->0
4.for
数值型for
--[[
语法
for var = exp1, exp2, exp3 do
something
end
exp2是循环上限,如果不想给循环设置上限,可以使用常量math.huge,内部使用break打破循环
exp3是步长,若不写程序默认步长为1
]]--
a = {1,2,3,4,5,6,7,8,9,10}
for i = 1, #a do
print(a[i])
end -->1 2 3 4 5 6 7 8 9 10
for i = 1, #a, 2 do
print(a[i])
end -->1 3 5 7 9
泛型for
ipairs、pairs都属于泛型for,泛型for需要第一个nil循环终止,所以下面的由于a[3] = nil,只输出了前面两个索引。
a = {
"Hello",
"World",
"!",
"Lua",
"!"
}
a[3] = nil
for k,v in ipairs(a) do -->将会遍历表输出但是遍历过程中元素的出现顺序是随机的
print(k,v)
end -->Hello World
5.break
用于打破循环,使用方法同C++一致。
6.goto
使用方式同C++一致,主要是写法上有点区别。
label
前后需要加双冒号。
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
7.continue
lua不提供continue语法,这里介绍一种简单的可以实现类似continue的功能。
for i=1, 3 do
repeat
if i==2 then
break
end
print(i)
until true
end
网友评论