Fortran: seleziona il costrutto del caso
UN select case consente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e la variabile selezionata viene controllata per ciascunoselect case.
Sintassi
La sintassi per il select case costrutto è il seguente -
[name:] select case (expression)
case (selector1)
! some statements
... case (selector2)
! other statements
...
case default
! more statements
...
end select [name]
Le seguenti regole si applicano a un file select dichiarazione -
L'espressione logica utilizzata in un'istruzione select può essere un'espressione logica, di carattere o intera (ma non reale).
Puoi avere un numero qualsiasi di istruzioni case all'interno di un select. Ogni caso è seguito dal valore da confrontare e può essere un'espressione logica, di carattere o intera (ma non reale) e determina quali istruzioni vengono eseguite.
L'espressione costante per un caso deve essere lo stesso tipo di dati della variabile nella selezione e deve essere una costante o un valore letterale.
Quando la variabile selezionata su, è uguale a un caso, le istruzioni che seguono quel caso verranno eseguite fino a quando non viene raggiunta l'istruzione successiva.
Il blocco case default viene eseguito se l'espressione in select case (espressione) non corrisponde a nessuno dei selettori.
Diagramma di flusso
Esempio 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
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Your grade is B
Specifica di un intervallo per il selettore
È possibile specificare un intervallo per il selettore, specificando un limite inferiore e superiore separati da due punti -
case (low:high)
Il seguente esempio lo dimostra:
Esempio 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
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Well done!
Your marks is 78