19.6.52. For(条件循环)
语法:
For ( Initialize, Predicate, Update ) {TermList}
参数
Initialize。此可选表达式在进入循环之前求值一次。如果未指定,则不进行初始化。
Predicate。TermList 中的项列表会一直执行,直到谓词求值为零(FALSE)。如果未指定此参数,则 For 宏等价于 While(1)。
Update。此可选表达式在循环每次执行时求值一次,在 TermList 中的所有其他项执行完之后执行。
描述
For 是一个宏,它通过将输入参数转换为等价的 ASL While 循环来创建循环。
注意: 不允许在给定作用域中多次创建同名对象。因此,必须避免在 For 循环内无条件地创建命名对象。在循环的第二次迭代中,当尝试第二次创建同一个命名对象时,将生成致命错误。
示例
以下示例展示了如何使用 For 宏创建循环,随后给出了实际由 ASL 编译器生成的等价 While 循环:
for (local0 = 0, local0 < 8, local0++)
{
}
Local0 = 0
While (Local0 < 8)
{
Local0++
}