在C#中,我在循环的标题中看到了一些奇怪而复杂的逻辑。
for循环的标题中有什么/不可能?是否可以有多个递增器/变量?
由于
答案 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-initializer
和for-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)