Fortran select case 语句

select case 语句允许测试变量是否与值列表相等。每个值称为一个 case,并为每个 select case 检查所选变量。

select case 的语法如下:

  1. [name:] select case (expression)
  2. case (selector1)
  3. ! some statements
  4. ... case (selector2)
  5. ! other statements
  6. ...
  7. case default
  8. ! more statements
  9. ...
  10. end select [name]

以下规则适用于 select 语句:

  • select 语句中使用的逻辑表达式可以是逻辑表达式、字符表达式或整数(但不是实数)表达式。
  • 您可以在一个选择中包含任意数量的 case。每个 case 后面都有要比较的值,可以是逻辑、字符或整数(但不是实数)表达式,并决定执行哪些语句。
  • case 的常量表达式必须与 select 中的变量具有相同的数据类型,并且必须是常量或文字。
  • 当所选变量等于一个 case 时,该 case 后面的语句将执行,直到到达下一个 case 语句。
  • 如果 select case(表达式)中的表达式与任何选择器都不匹配,则执行 case 默认部分。

流程图:


实例
  1. program selectCaseProg
  2. implicit none
  3. ! local variable declaration
  4. character :: grade = 'B'
  5. select case (grade)
  6. case ('A')
  7. print*, "Excellent!"
  8. case ('B')
  9. case ('C')
  10. print*, "Well done"
  11. case ('D')
  12. print*, "You passed"
  13. case ('F')
  14. print*, "Better try again"
  15. case default
  16. print*, "Invalid grade"
  17. end select
  18. print*, "Your grade is ", grade
  19. end program selectCaseProg

结果是:

  1. Your grade is B

select 的选择范围:

您可以通过指定用冒号分隔的下限和上限来指定 select 的选择范围:

  1. case (low:high)

比如下面的实例:

  1. program selectCaseProg
  2. implicit none
  3. ! local variable declaration
  4. integer :: marks = 78
  5. select case (marks)
  6. case (91:100)
  7. print*, "Excellent!"
  8. case (81:90)
  9. print*, "Very good!"
  10. case (71:80)
  11. print*, "Well done!"
  12. case (61:70)
  13. print*, "Not bad!"
  14. case (41:60)
  15. print*, "You passed!"
  16. case (:40)
  17. print*, "Better try again!"
  18. case default
  19. print*, "Invalid marks"
  20. end select
  21. print*, "Your marks is ", marks
  22. end program selectCaseProg

结果为:

  1. Well done!
  2. Your marks is 78

分类导航