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