选择案例构造(select case construct)
优质
小牛编辑
135浏览
2023-12-01
select case语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且为每个select case检查所选的变量。
语法 (Syntax)
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的常量表达式必须与select中的变量具有相同的数据类型,并且必须是常量或文字。
当选择on的变量等于大小写时,该大小写之后的语句将执行,直到到达下一个case语句。
如果select case(expression)中的表达式与任何选择器都不匹配,则执行case default block。
流程图 (Flow Diagram)
例子1 (Example 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 (Example 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