目录
6.3 迭代
for、while、do-while 可以使用迭代如下:
for (for-init-statement; condition(opt); expression)
statement-no-new-scope
while (condition)
statement-no-new-scope
do
statement
while (expression)
有关循环的明确规范,请参见第9节“着色语言语法”。
for循环首先计算for-init-statement,然后计算condition。如果条件condition为true,则会执行循环体。空condition的计算结果为true。在执行主体之后,for循环将计算表达式expression的值,然后再循环到计算condition的值,如此循环直到condition的值为false。然后退出循环,跳过它的主体并跳过它的expression。表达式修改的变量在循环退出后保持其值,前提是它们仍然存在
在适用范围。在for-init-statement或condition中声明的变量仅在for循环的statement-no-new-scope结尾之前的范围内有效。
while循环首先计算condition,如果为true,则执行循环体。然后重复这一过程,直到条件condition为false,退出循环。在condition中声明的变量仅在while循环的statement-no-new-scope结束之前有效。
do-while循环首先执行statement,然后执行expression。 重复这一过程直到expression计算结果为false,然后退出循环。
condition的表达式必须求值为布尔值。
condition和or-init-statement都可以声明和初始化变量,但do-while循环除外,它不能在其expression中声明变量。变量的作用域只持续到statement的结尾或构成循环体的statement-no-new-scope。
循环可以被嵌套,例如for里再来一个for。
允许非终止循环。非常长或非终止循环的结果取决于平台(所以最好不要写这样的循环)。