49 votes

Est-ce qu'il en est de même si les instructions existent en C #?

J'ai trouvé le code suivant en C#.

if(condition0) statement0;
else if(condition1) statement1;
else if(condition2) statement2;
else if(condition3) statement3;
...
else if(conditionN) statementN;
else lastStatement;

Certains de mes collègues me disent que c'est un else if déclaration. Cependant, je suis convaincu que c'est en fait un multi-couches imbriquées if-else déclaration. Je sais que sans délimiteurs {}, une instruction est autorisé dans une if ou else. Donc, dans ce cas, je pense qu'il serait équivalent au code suivant.

if(condition0) 
  statement0;
else
  if(condition1)
    statement1;
  else
    if(condition2)
      statement2;
    else
      if(condition3)
        statement3;
      else
      ...

Notez que tous j'ai changé, c'est l'espace. Cette mise en retrait des œuvres, car chaque else remonte à la plus récente, if déclaration quand il n'y a pas de délimiteurs.

Quelqu'un peut-il préciser si l' else if format dans le premier exemple est traité différemment par le compilateur que le sous - if-else format dans le deuxième exemple?

78voto

Eric Lippert Points 300275

Vous avez raison; il n'y a pas une telle chose comme un "else if" déclaration en C#. C'est juste un autre lieu où la déclaration de l'option de remplacement de la clause est elle-même une instruction if.

Bien sûr, l' IDE traite "sinon si" spéciale de sorte que vous obtenez la belle mise en forme que vous attendez.

Notez qu'il est un #elif construire dans le "préprocesseur" syntaxe.

Notez également que le C, C++ et ECMAScript - et je suis sûr que beaucoup plus de C-comme langues - ont aussi la propriété qu'il n'y a pas officiellement de "else if" de la déclaration. Au contraire, dans chaque le comportement est hors de la définition de "l'autre" comme venant à l'avant d'une seule instruction.

4voto

Robert Harvey Points 103562

C'est un multi-couche si-sinon.

La raison en est qu'il a à faire avec les règles de syntaxe c #. Un else est suivi d'un énoncé, et toute chaîne if considérée comme un énoncé.

4voto

Mark Byers Points 318575

La construction else if n'est jamais mentionnée dans la spécification C # , sauf dans certains exemples où elle est utilisée sans explication. Donc, je ne pense pas que ce soit une construction spéciale, il est simplement imbriqué si les déclarations.

3voto

James Curran Points 55356

Vous avez raison. C'est juste un else suivi par un if .

2voto

John Saunders Points 118808

Il n'y a pas d'instruction "else if" en C #.

Par ailleurs, je ne sais pas s'il existe des mots clés d'énoncé comportant plusieurs mots en C #.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X