当前位置: 首页 > 文档资料 > Fortran 中文教程 >

选择案例构造(select case construct)

优质
小牛编辑
127浏览
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)

流程图2

例子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