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ステートメントに到達するまで実行されます。
- 選択ケース(式)の式がセレクターのいずれとも一致しない場合、ケースのデフォルトブロックが実行されます。
流れ図
例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