- Fortran 教程
- Fortran - 首頁
- Fortran - 概述
- Fortran - 環境搭建
- Fortran - 基本語法
- Fortran - 資料型別
- Fortran - 變數
- Fortran - 常量
- Fortran - 運算子
- Fortran - 決策語句
- Fortran - 迴圈語句
- Fortran - 數字
- Fortran - 字元
- Fortran - 字串
- Fortran - 陣列
- Fortran - 動態陣列
- Fortran - 派生資料型別
- Fortran - 指標
- Fortran - 基本輸入輸出
- Fortran - 檔案輸入輸出
- Fortran - 子程式
- Fortran - 模組
- Fortran - 內在函式
- Fortran - 數值精度
- Fortran - 程式庫
- Fortran - 程式設計風格
- Fortran - 程式除錯
- Fortran 資源
- Fortran - 快速指南
- Fortran - 有用資源
- Fortran - 討論
Fortran - 選擇語句
select case 語句允許將變數與值的列表進行相等性測試。每個值稱為一個 case,被選擇的變數將針對每個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 語句。每個 case 後面跟著要比較的值,可以是邏輯、字元或整數表示式(但不能是實數表示式),並決定執行哪些語句。
case 的常量表達式必須與 select 中變數的資料型別相同,並且必須是常量或字面量。
當被選擇的變數等於某個 case 時,將執行該 case 後面的語句,直到到達下一個 case 語句。
如果 select case (表示式) 中的表示式與任何選擇器都不匹配,則執行 case default 塊。
流程圖
示例 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
fortran_decisions.htm
廣告