2010-12-09 19 views

Répondre

8

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).

+0

tant que tous les éléments sont d'un type, vous pouvez faire beaucoup de déclarations et d'initialisations. –