- Fortran 教程
- Fortran - 首页
- Fortran - 概述
- Fortran - 环境搭建
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策语句
- Fortran - 循环语句
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 子程序
- Fortran - 模块
- Fortran - 内在函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 程序调试
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用资源
- Fortran - 讨论
Fortran - 选择语句
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 语句中使用的逻辑表达式可以是逻辑、字符或整数表达式(但不能是实数表达式)。
可以在一个 select 中包含任意数量的 case 语句。每个 case 后面跟着要比较的值,可以是逻辑、字符或整数表达式(但不能是实数表达式),并决定执行哪些语句。
case 的常量表达式必须与 select 中变量的数据类型相同,并且必须是常量或字面量。
当被选择的变量等于某个 case 时,将执行该 case 后面的语句,直到到达下一个 case 语句。
如果 select case (表达式) 中的表达式与任何选择器都不匹配,则执行 case default 块。
流程图
示例 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
编译并执行上述代码后,将产生以下结果:
Your grade is B
指定选择器的范围
可以通过指定用冒号分隔的下限和上限来指定选择器的范围:
case (low:high)
以下示例演示了这一点:
示例 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
编译并执行上述代码后,将产生以下结果:
Well done! Your marks is 78
fortran_decisions.htm
广告