Fortran-select-case-construct

提供:Dev Guides
移動先:案内検索

Fortran-大文字と小文字の構成の選択

ケースを選択」ステートメントを使用すると、値のリストに対する変数の等価性をテストできます。 各値はケースと呼ばれ、 select case ごとに選択されている変数がチェックされます。

構文

*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ステートメントを含めることができます。 各ケースの後には、比較対象の値が続き、論理式、文字式、または整数(ただし、実数ではない)式であり、実行されるステートメントを決定します。
  • ケースのconstant-expressionは、selectの変数と同じデータ型である必要があり、定数またはリテラルでなければなりません。
  • 選択されている変数がcaseと等しい場合、そのケースに続くステートメントは、次のcaseステートメントに到達するまで実行されます。
  • 選択ケース(式)の式がセレクターのいずれとも一致しない場合、ケースのデフォルトブロックが実行されます。

流れ図

フロー図2

例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