- 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,并且针对每个选择 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 (expression) 中的表达式与任何选择器都不匹配,则执行 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