loops and flow control
本页内容 | * 代码块 * do循环 * for循环 * foreach循环 * while循环 * 其他循环语句 * 条件判断 * 返回 * 中断 * 继续 |
---|
另请参阅 VEX函数。VEX中的大部分工作通过函数调用完成,其语句多为循环结构,其中许多与C等语言的循环结构类似。虽然print
在某些语言(如Python)中是语句,但在VEX中需使用printf函数进行输出。
¶
与C等语言类似,可用花括号包裹多个语句形成代码块。
例如,if
语句可执行单条语句:
if ( needs_zapping() ) zap()
…或执行花括号内的代码块:
if ( needs_zapping() ) { zap() disintegrate() remove_dust()}
do循环
do statement [while (condition)]
先执行语句,若条件为真则循环。与while
不同,do
保证至少执行一次语句。
for循环
for (init; condition; change) statement
标准C风格for
循环。先执行初始化语句,当条件为真时重复执行语句,每轮迭代结束时执行变更语句。
foreach循环
foreach (value; array) statement
foreach (index, value; array) statement
遍历数组每个元素执行语句(可选地将索引设为当前数组位置)。详见foreach。
while循环
while (condition) statement
当条件为真时重复执行语句。
其他循环语句
forpoints、illuminance和gather语句可用于遍历VEX处理的数据。
条件判断
if (condition) statement_if_true [else statement_if_false]
若条件为真则执行statement_if_true。
若包含else
子句,则条件为假时执行statement_if_false。
返回
return
带可选返回值退出函数。
int max(int a, b) { if (a > b) { return a; } return b;}
中断
break
立即退出循环。常与if
配合在满足条件时提前终止循环。
for (int i = 0; i < sizes; i++){ mixamount += getAmount(roughness); if (mixamount > 1) { break; }}
继续
continue
立即跳转至下一次循环迭代。
foreach (x; myarray) { if (x < 10) continue; ...}