Fortran select case 语句
select case 语句允许测试变量是否与值列表相等。每个值称为一个 case,并为每个 select case 检查所选变量。
select case 的语法如下:
[name:] select case (expression)
case (selector1)
! some statements
... case (selector2)
! other statements
...
case default
! more statements
...
end select [name]
以下规则适用于 select 语句:
- select 语句中使用的逻辑表达式可以是逻辑表达式、字符表达式或整数(但不是实数)表达式。
- 您可以在一个选择中包含任意数量的 case。每个 case 后面都有要比较的值,可以是逻辑、字符或整数(但不是实数)表达式,并决定执行哪些语句。
- case 的常量表达式必须与 select 中的变量具有相同的数据类型,并且必须是常量或文字。
- 当所选变量等于一个 case 时,该 case 后面的语句将执行,直到到达下一个 case 语句。
- 如果 select case(表达式)中的表达式与任何选择器都不匹配,则执行 case 默认部分。
流程图:
实例
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
结果是:
Your grade is B
select 的选择范围:
您可以通过指定用冒号分隔的下限和上限来指定 select 的选择范围:
case (low:high)
比如下面的实例:
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
结果为:
Well done!
Your marks is 78