Fortran關係運算符
下表列出了所有的Fortran支持的關係運算符。假設變量A=10和變量B=20,則:
操作符
等同
描述
示例
==
.eq.
檢查兩個操作數的值相等與否,如果是,則條件變爲真。
(A == B) i不爲 true.
/=
.ne.
檢查,兩個操作數的值相等與否,如果值不相等,則條件變爲真。
(A != B) 爲 true.
>
.gt.
檢查,左操作數的值大於右操作數的值,如果是的話那麼條件爲真。
(A > B)不爲true.
<
.lt.
檢查,左操作數的值是否小於右操作數的值,如果是的話那麼條件爲真。
(A < B) 是 true.
>=
.ge.
檢查,左邊的操作數的值是否大於或等於右操作數的值,如果是,則條件變爲真。
(A >= B) 不爲 true.
<=
.le.
檢查,左邊的操作數的值是否小於或等於右操作數的值,如果是,則條件變爲真。
(A <= B) 爲 true.
示例
試試下面的例子就明白所有在Fortran語言可用的邏輯運算符:
program logicalOp ! this program checks logical operators implicit none ! variable declaration
logical :: a, b ! assigning values
a = .true. b = .false. if (a .and. b) then print *, "Line 1 - Condition is true" else print *, "Line 1 - Condition is false" end if if (a .or. b) then print *, "Line 2 - Condition is true" else print *, "Line 2 - Condition is false" end if ! changing values
a = .false. b = .true. if (.not.(a .and. b)) then print *, "Line 3 - Condition is true" else print *, "Line 3 - Condition is false" end if if (b .neqv. a) then print *, "Line 4 - Condition is true" else print *, "Line 4 - Condition is false" end if if (b .eqv. a) then print *, "Line 5 - Condition is true" else print *, "Line 5 - Condition is false" end if end program logicalOp
當編譯並執行上述程序,將產生以下結果:
Line 1 - Condition is false
Line 2 - Condition is true
Line 3 - Condition is true
Line 4 - Condition is true
Line 5 - Condition is false