Fortran - seleccionar construcción de caso
UNA select case La declaración permite probar la igualdad de una variable con una lista de valores. Cada valor se denomina caso, y la variable que se selecciona se comprueba para cadaselect case.
Sintaxis
La sintaxis de select case La construcción es la siguiente:
[name:] select case (expression)
case (selector1)
! some statements
... case (selector2)
! other statements
...
case default
! more statements
...
end select [name]
Las siguientes reglas se aplican a select declaración -
La expresión lógica utilizada en una declaración de selección podría ser una expresión lógica, de caracteres o entera (pero no real).
Puede tener cualquier número de declaraciones de casos dentro de una selección. A cada caso le sigue el valor con el que se va a comparar y puede ser una expresión lógica, de caracteres o entera (pero no real) y determina qué declaraciones se ejecutan.
La expresión-constante para un caso debe ser del mismo tipo de datos que la variable en la selección, y debe ser una constante o literal.
Cuando la variable que se selecciona en es igual a un caso, las declaraciones que siguen a ese caso se ejecutarán hasta que se alcance la siguiente declaración del caso.
El bloque de caso predeterminado se ejecuta si la expresión en el caso de selección (expresión) no coincide con ninguno de los selectores.
Diagrama de flujo
Ejemplo 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
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Your grade is B
Especificar un rango para el selector
Puede especificar un rango para el selector, especificando un límite inferior y superior separados por dos puntos:
case (low:high)
El siguiente ejemplo demuestra esto:
Ejemplo 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
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Well done!
Your marks is 78