fortran fortran中文资料网
手气不错
Article

030.selectCaseBasic_分支选择

2026年7月25日基础级

select case用于根据一个离散选择值进入不同分支。它适合材料编号、状态码、菜单选项等分类判断,可以让多个固定值的分支结构比连续的if更清楚。

本篇只介绍单个整数值的基础匹配。范围匹配、多个值写在同一个case中的写法留到后续文章。

语法结构

select case (selector)
case (value_1)
  ! selector等于value_1时执行
case (value_2)
  ! selector等于value_2时执行
case default
  ! 没有任何case匹配时执行
end select
  • selector是选择表达式,程序根据它的值寻找匹配的case
  • 匹配到一个case后,只执行该分支,然后跳到end select之后,不会继续执行其他分支。
  • case default是可选的兜底分支,用于处理所有未列出的值。

本文代码

! select case用于按离散值选择一个分支。
program selectCaseBasicDemo
  implicit none

  integer :: materialCode

  materialCode = 2

  write (*,"(A)") "select case基础:"
  select case (materialCode)
  case (1)
    write (*,"(A)") "材料:铝"
  case (2)
    write (*,"(A)") "材料:钢"
  case (3)
    write (*,"(A)") "材料:铜"
  case default
    write (*,"(A)") "材料:未知"
  end select
end program selectCaseBasicDemo

编译运行

(base) hong@hongdeMacBook-Pro 030.selectCaseBasic % gfortran -Wall -Wextra -std=f2018 exampleSelectCaseBasic.f90
(base) hong@hongdeMacBook-Pro 030.selectCaseBasic % ./a.out
select case基础:
材料:钢

现象分析

materialCode的值为2,因此选择case (2),输出“材料:钢”。匹配成功后,程序直接离开整个select case结构,不会继续执行case (3)case default

如果把materialCode = 2改为4,1、2、3都无法匹配,程序就会执行case default并输出“材料:未知”。

两个核心知识点

  • select case用一个选择表达式在多个离散值分支中进行单路分派。
  • case default处理所有没有明确列出的值,避免未知编号没有任何反馈。

与 if 的选择

当判断条件是“某个值等于若干个固定选项”时,select case通常更容易扫描;当条件包含大小比较、范围组合或多个变量之间的逻辑关系时,if通常更合适。后续的范围与列表匹配会继续扩展case的写法。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注