Lua 流程控制
条件判断
与其他编程语言相同, Lua
提供 if
语句以实现条件判断.
if
if
语句用于执行条件判断, 其语法结构如下:
1 2 3 |
|
condition
是需要判断的表达式, if
语句会根据其真假值以决定是否执行 statements
代码块.
如果 condition
为真, 则执行 statements
代码块, 如果为假, 则跳过该部分代码块.
Info
表达式可使用逻辑运算符进行连接, 参考 Lua - 运算符.
例如:
1 2 3 4 5 6 |
|
elseif
elseif
是 if
语句的可选语句, 用于执行多个条件的判断. 其语法结构如下:
1 2 3 4 5 6 7 8 |
|
elseif
后面可以跟任意多个 condition
表达式, condition
为真时会执行对应的 statements
代码块.
如果 condition
为假, 则依次检查后续的 elseif
, 直到找到为真且匹配的表达式.
例如:
1 2 3 4 5 6 7 8 9 10 |
|
else
else
是 if
语句的可选语句, 用于表达式为假时执行的默认代码块. 其语法结构如下:
1 2 3 4 5 |
|
如果 condition
为假, 则执行 else
后的 defaultStatements
代码块.
例如:
1 2 3 4 5 6 7 8 9 |
|
else
可以与 elseif
一起使用, else
会在所有条件都为假时执行.
例如:
1 2 3 4 5 6 7 8 9 10 11 |
|
循环
Lua
提供以下三种循环语句, 分别用于在特定情况下重复执行代码块中的内容.
for
Lua
支持两种 for
循环: 数值型 for
循环以及泛型 for
循环.
Info
这里仅介绍数值型 for
循环, 泛型 for
循环请阅读 Lua 迭代器.
数值型 for
循环的语法结构如下:
1 2 3 |
|
var
: 循环变量, 自动声明为局部变量. 其值在每次循环时自动更新.start
: 循环变量的起始值.stop
: 循环变量的结束值.step
: 可选部分, 步长, 每次循环时循环变量的增量, 默认为 1.statements
: 循环语句中需要反复执行的代码块.
循环开始时var
会被设定为起始值 start
, 每次循环都会执行 statements
中的代码.
每次循环结束时会更新 var
的值, 即 var = var + step
. 当满足以下条件时循环结束:
step
为正, 则var
大于结束值stop
时结束循环.step
为负, 则var
小于结束值stop
时结束循环.
例如:
1 2 3 4 5 6 7 8 9 |
|
while
while
循环在给定表达式为真时重复执行代码块. 其语法结构如下:
1 2 3 |
|
while
循环会反复执行, 直到 condition
表达式的值为假.
如果 condition
表达式在某次循环后为假,则循环结束.
Note
while
循环在开始时会先检查 condition
的值, 如果为假则不执行循环.
例如:
1 2 3 4 5 6 7 |
|
repeat ... until
repeat ... until
循环与 while
循环类似, 用于在条件满足时重复执行代码块. 其语法结构如下:
1 2 3 |
|
repeat ... until
循环的结束条件与 while
循环相同.
不同的是其会先执行一次 statements
中的代码再判断 condition
表达式, 因此其至少会执行一次循环.
例如:
1 2 3 4 5 6 7 |
|
break
break
语句用于跳出循环. 循环体中的代码执行 break
会立刻退出当前循环并执行循环语句之后的代码.
例如:
1 2 3 4 5 6 7 |
|
对于多层嵌套循环, break
只能跳出当前正在进行的循环语句, 并不能直接跳出外层循环.
嵌套语句
流程控制语句也可以嵌套使用以实现更为复杂的逻辑.
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|