Bonjour,
Je suis débutant en fortran, et je voudrais savoir si le squelette suivant est correct ou s'il manque un endif .
MerciCode:
1
2
3
4
5
6
7
8 if a then ..... else if b then .... else .... endif
Version imprimable
Bonjour,
Je suis débutant en fortran, et je voudrais savoir si le squelette suivant est correct ou s'il manque un endif .
MerciCode:
1
2
3
4
5
6
7
8 if a then ..... else if b then .... else .... endif
Oui :)
Chaque bloc if doit se terminer par un endif
Code:
1
2
3
4
5
6
7
8
9
10
11
12 if a then ..... else if b then .... else .... Endif Endif
J'ai vu sur un tuto ça :
Est-ce la même chose queCode:
1
2
3
4
5
6
7 if (condition1) ... else if (condition 2) .... else ... endif
Ou il faut faire plutôt :Code:
1
2
3
4
5
6
7
8 if (condition1) ... else if (condition 2) .... else ... endif
???Code:
1
2
3
4
5
6
7
8
9 if (condition1) ... else if (condition 2) .... else ... endif endif
Mon problème est que je dois comprendre un code source dans lequel il y a beaucoup beaucoup de if else endif...et j'ai l'impression qu'il manque des Endif...
(ps :Je ne peux pas mettre en ligne le code source .)
Il faut les deux endif obligatoirement. Fais un test et compile ton code, tu verras que tu as besoin des deux endif.
Pour ce qui est d'utiliser elseif ou non ça n'a pas d'importance, d'un point de vue de la logique ça me semble identique.
Si je comprends bien, le problème vient du fait que steven22 confond la structure :
et la structure :Code:
1
2
3
4
5 if (condition1) then ... else if (condition2) then ...
Ce sont 2 choses très différentes. Dans le premier cas, le « else if(condition2) then» est une deuxième branche du « if » initial. Dans le deuxième cas, le « if (condition2) then » est un « if » dans la branche « else » du premier if. Dans le premier cas, il n'y a donc qu'un if, lors que dans le deuxième cas, il y a 2 ifs imbriqués. Il faut donc 1 et 2 endif respectivement.Code:
1
2
3
4
5
6 if (condition1) then ... else if (condition2) then ...
Contrairement à du C ou du Pascal, les changements de ligne sont significatifs en Fortran : « else <changement de ligne> if » est donc différent de « else if ».
Merci pour l'explication.
C'est vrai que j'ai plus l'habitude du C, C++ et VB qui eux mettent systematiquement un endif ou le terminateur qui va bien pour chaque IF.
Ok compris, la différence entre if ... else .... if et elseif.