Est-il possible d'avoir plus d'un incrémenteur/variable?
Oui, c'est possible. Autrement dit, cela est parfaitement légal:
// reverse b into a
for (int i = 0, j = n - 1; i < n; i++, j--) {
a[i] = b[j]
}
Quelle est/n'est pas possible dans l'en-tête d'une boucle for
?
C'est exactement ce que vous dira la grammaire. Voici la grammaire pour une déclaration for
en C#:
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
Notez que les deux for-initializer
et for-iterator
permettent des instructions composées par statement-expression-list
. Voir le §8.8.3 du language specification pour plus de détails. Vous voudrez probablement aussi visiter §8.5.1 de la spécification pour exactement ce que local-variable-declaration
implique (indice: int i = 0, j = n - 1, k = 42
est légal mais int i = 0, j = n - 1, long k = 42
n'est pas).
avez-vous envisager de lire la définition de la langue? –