SELECT CASE (n) ! n est un entier CASE (0) ! si n=0, alors on execute x=x+1 x=x+1 CASE (1,2) ! si n=1 ou 2 alors on execute x=x+2 x=x+2 CASE (3:10) ! si 3<= n <= 10 alors on execute x=x+10 x=x+10 CASE DEFAULT ! sinon on execute x =x+102 x =x+102 END SELECTEvidemment, on peut faire la même chose en utilisant l'instruction IF, mais pour la lisibilité du programme ceci est mieux adapté dans ce cas.
La construction CASE se présente de façon générale :
[nom:] SELECT CASE (expr) CASE (selecteur1) bloc1 CASE (selecteur2) bloc2 . . [CASE DEFAULT bloc ] END SELECT [nom]L'expression expr doit être de type caractère, logique ou entier et bien sûr sélecteur doit être du même type. Par exemple
SELECT CASE (char) ! char est de type caractere CASE ('c','d','r') ! si char = c, d ou r type_ch = .true. CASE ('I':'N') ! si char = I, J, K, L, M ou N type_int = .true. CASE DEFAULT ! sinon on execute x =x+102 typr_reel = .true. END SELECT