select 选择语句

select语句可以对参数进行匹配判断,满足匹配条件的进入对应的case。 其中,只能用于整型,字符串,逻辑型

举例

program main
   implicit none
   character(len=1)::move
   move="a"
   select case(move)              ! move有wasd四种可能性
   case("w");write(*,*)"上"       !使用;一行可以写多个语句,可读性更好
   case("a");write(*,*)"左"
   case("s");write(*,*)"下"
   case("d");write(*,*)"右"
   case default;write(*,*)"错误的方向" !默认的case,可以省略
   end select
end program main
$ fpm run
 左
  • 练习:尝试修改move的值,观察输出

同时,case 语句支持指定多个条件进行匹配,也支持范围

program main
   implicit none
   character(len=1)::c
   integer::i,j
   i=10
   c="W"
   j=7
   !数字范围
   select case(i)      
   case(1:9)  ;write(*,*)"一位数" 
   case(10:99);write(*,*)"两位数"
   end select
   !字符范围
   select case(c)      
   case('a':'z')  ;write(*,*)"小写字母" 
   case('A':'Z')  ;write(*,*)"大写字母"
   end select

   select case(j)
   case(2,3,5,7)  ;write(*,*)"质数"
   case default   ;write(*,*)"不是质数"
   end select
end program main
$ fpm run
 两位数
 大写字母
 质数
  • 不支持1:4:2这类范围