for循环的标题中允许什么?

时间:2010-12-09 00:02:23

标签: c# loops

在C#中,我在循环的标题中看到了一些奇怪而复杂的逻辑。

for循环的标题中有什么/不可能?是否可以有多个递增器/变量?

由于

2 个答案:

答案 0 :(得分:8)

  

是否可以有多个递增器/变量?

是的,有可能。也就是说,这是完全合法的:

// reverse b into a
for (int i = 0, j = n - 1; i < n; i++, j--) {
    a[i] = b[j]
}
  

for循环的标头中有什么/不可能?

这正是语法告诉你的。以下是C#中的for语句的语法:

for-statement:
    for(for-initializer_opt; for-condition_opt; for-iterator_opt)
        embedded-statement
for-initializer:
    local-variable-declaration
    statement-expression-list
for-condition:
    boolean-expression
for-iterator:
    statement-expression-list
statement-expression-list:
    statement-expression
    statement-expression-list, statement-expression

请注意,for-initializerfor-iterator都允许通过statement-expression-list复合语句。有关其他详细信息,请参阅language specification的§8.8.3。您可能还想访问规范的§8.5.1以确切了解local-variable-declaration所需的内容(提示:int i = 0, j = n - 1, k = 42是合法的,但int i = 0, j = n - 1, long k = 42不合法。)

答案 1 :(得分:2)