【声明】以下内容为网络内容的整理,仅供个人学习,非商业用途
循环类型 | 描述 |
---|---|
while循环 | 在条件为true时,让程序重复地执行某些语句。执行语句前会先检查条件是否为true |
for循环 | 重复执行指定语句,重复次数可在for语句总控制 |
repeat...until | 重复执行循环,直到指定的条件为真为止 |
循环嵌套 | 可以在循环内嵌套一个或多个循环语句(while do ... end:for ... do ... end:repeat ... until;) |
循环控制语句
控制语句 | 描述 |
---|---|
break语句 | 提出当前循环或语句,并开始脚本执行紧接着的语句 |
goto语句 | 将程序的控制点转移到一个标签处 |
while 循环
语法:
while(condition) --条件
do
statements --循环体
end
condition(条件)可以是任意表达式,statements(循环体语句)可以是一条语句或多条语句,执行流程如下:
用例:
a = 10
while(a < 15)
do
print("a = ",a)
a = a + 1
end
输出结果:
a = 10
a = 11
a = 12
a = 13
a = 14
for循环
语法:
for var = exp1,exp2,exp3 do
<执行体>
end
var 从exp1变化到exp2,每次编号以exp3为步长增长var,并执行一次“执行体”。exp3是可选的,如果不指定,默认为1。
数值for循环
实例:
for i = 1, 5 do
print(i)
end
for i = 5, 1, -1 do
print(i)
end
输出结果:
1
2
3
4
5
5
4
3
2
1
泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值,类似C++中的foreach语句
--打印数组a的所有值
a = {"one", "two", "three"}
for i, v in ipairs(a) do
print(i, v)
end
i是数组索引值,v是对应索引的数组元素值,ipairs是Lua提供的一个迭代器函数 ,用来迭代数组。
实例:
days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"}
for i, v in ipairs(days) do
print(v)
end
输出结果:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
repeat...until循环
语法:
repeat
statements
until(condition)
循环条件判断语句(condition)在循环体末尾部分,所以在条件进行判断前循环体都会执行一次。
如果条件判断语句(condition)为false,循环会重新开始执行,直到条件判断语句(condition)为true才会停止执行。
实例:
a = 10
repeat
print("a的值为:",a)
a = a + 1
until(a > 15)
输出结果:
a的值为: 10
a的值为: 11
a的值为: 12
a的值为: 13
a的值为: 14
a的值为: 15
Lua语言 "repeat...until循环" 与 C语言 "do...while"区别
repeat...until 实例:
a = 1
repeat
print("a的值是:", a)
a = a + 1
until(a > 5)
do...while 实例:
int a = 1;
do {
printf("a的值是%d\n", a);
a = a + 1;
} while (a < 5);
Lua的repeat...until输出结果 | c的do...while输出结果 |
a的值是: 1 a的值是: 2 a的值是: 3 a的值是: 4 a的值是: 5 | a的值是1 a的值是2 a的值是3 a的值是4 |