Fortran - Sélectionnez la construction de cas

UNE select case L'instruction permet à une variable d'être testée pour l'égalité par rapport à une liste de valeurs. Chaque valeur est appelée un cas, et la variable sélectionnée est vérifiée pour chaqueselect case.

Syntaxe

La syntaxe du select case la construction est la suivante -

[name:] select case (expression) 
   case (selector1)          
   ! some statements          
   ... case (selector2)           
   ! other statements           
   ...       
   case default          
   ! more statements          
   ...   
end select [name]

Les règles suivantes s'appliquent à un select déclaration -

  • L'expression logique utilisée dans une instruction select peut être une expression logique, de caractère ou d'entier (mais pas réelle).

  • Vous pouvez avoir n'importe quel nombre d'instructions de cas dans une sélection. Chaque cas est suivi de la valeur à comparer et peut être une expression logique, de caractère ou d'entier (mais pas réel) et détermine quelles instructions sont exécutées.

  • L'expression constante d'un cas doit être du même type de données que la variable dans la sélection et doit être une constante ou un littéral.

  • Lorsque la variable sélectionnée sur, est égale à un cas, les instructions suivant ce cas seront exécutées jusqu'à ce que l'instruction de cas suivante soit atteinte.

  • Le bloc case par défaut est exécuté si l'expression dans la case de sélection (expression) ne correspond à aucun des sélecteurs.

Représentation schématique

Exemple 1

program selectCaseProg
implicit none

   ! local variable declaration
   character :: grade = 'B'

   select case (grade)
   
      case ('A') 
      print*, "Excellent!" 

      case ('B')
      
      case ('C') 
         print*, "Well done" 

      case ('D')
         print*, "You passed" 

      case ('F')
         print*, "Better try again" 

      case default
         print*, "Invalid grade" 
      
   end select
   
   print*, "Your grade is ", grade 
 
end program selectCaseProg

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Your grade is B

Spécification d'une plage pour le sélecteur

Vous pouvez spécifier une plage pour le sélecteur, en spécifiant une limite inférieure et supérieure séparées par deux-points -

case (low:high)

L'exemple suivant illustre ceci -

Exemple 2

program selectCaseProg
implicit none

   ! local variable declaration
   integer :: marks = 78

   select case (marks)
   
      case (91:100) 
         print*, "Excellent!" 

      case (81:90)
         print*, "Very good!"

      case (71:80) 
         print*, "Well done!" 

      case (61:70)
         print*, "Not bad!" 

      case (41:60)
         print*, "You passed!"  

      case (:40)
         print*, "Better try again!"  

      case default
         print*, "Invalid marks" 
         
   end select
   print*, "Your marks is ", marks
 
end program selectCaseProg

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Well done!
Your marks is 78