2010-12-03 1 views

Répondre

29

Oui, il soutient - mais il prend la déclaration suivante , pas la suivante ligne. Ainsi, par exemple:

int a = 0; 
int b = 0; 
if (someCondition) a = 1; b = 1; 
int c = 2; 

équivaut à:

int a = 0; 
int b = 0; 
if (someCondition) 
{ 
    a = 1; 
} 
b = 1; 
int c = 2; 

Personnellement, je toujours inclure des accolades autour des corps des if déclarations, et la plupart des conventions de codage que j'ai rencontré la même approche.

+6

meilleure réponse: comprend à la fois l'explication, l'extrait de code, et les pièges! – mlibby

+1

+1 pour les normes de codage! –

3

Cela fonctionne comme C/C++ et Java. Sans boucles, il inclut seulement la déclaration suivante.

+0

Croiriez-vous que par des accolades, il court aussi que la prochaine déclaration? –

5
if (info == 8) 
{ 
    info = 4; 
} 
otherStuff(); 
0

Bien sûr, "if" ne fonctionne que pour "info = 4".

0

Il ne prend que la ligne suivante, donc votre exemple compilerait au deuxième exemple de résultat possible.

1

Oui, il prend en charge si codeblocks sans accolades, seule la première déclaration après la si seront inclus dans le bloc if, comme dans votre deuxième exemple

0

En C#, si les instructions exécutent des commandes basées sur des crochets. Si aucune parenthèse n'est donnée, elle exécute la commande suivante si l'instruction est vraie, puis exécute la commande après. si la condition est fausse, continue juste à la commande suivante

donc

if(true) 
    method1(); 
method2(); 

serait le même que

if(true) 
{ 
    method1(); 
} 
method2(); 
Questions connexes