OpenGL ES着色器语言规范 6.3 迭代

目录

6.3 迭代


6.3 迭代

forwhiledo-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。如果条件conditiontrue,则会执行循环体。空condition的计算结果为true。在执行主体之后,for循环将计算表达式expression的值,然后再循环到计算condition的值,如此循环直到condition的值为false。然后退出循环,跳过它的主体并跳过它的expression。表达式修改的变量在循环退出后保持其值,前提是它们仍然存在
在适用范围。在for-init-statementcondition中声明的变量仅在for循环的statement-no-new-scope结尾之前的范围内有效。

while循环首先计算condition,如果为true,则执行循环体。然后重复这一过程,直到条件conditionfalse,退出循环。在condition中声明的变量仅在while循环的statement-no-new-scope结束之前有效。

do-while循环首先执行statement,然后执行expression。  重复这一过程直到expression计算结果为false,然后退出循环。

condition的表达式必须求值为布尔值。

conditionor-init-statement都可以声明和初始化变量,do-while循环除外,它不能在其expression中声明变量。变量的作用域只持续到statement的结尾或构成循环体的statement-no-new-scope

循环可以被嵌套,例如for里再来一个for

允许非终止循环。非常长或非终止循环的结果取决于平台(所以最好不要写这样的循环)。

OpenGL ES着色器语言规范 6.3 迭代
Android,OpenGL ES,图形学