Fortran - 運算子



運算子是一個符號,它告訴編譯器執行特定的數學或邏輯操作。Fortran 提供以下型別的運算子:

  • 算術運算子
  • 關係運算符
  • 邏輯運算子

讓我們逐一看看所有這些型別的運算子。

算術運算子

下表顯示了 Fortran 支援的所有算術運算子。假設變數A持有 5,變數B持有 3,則:

顯示示例

運算子 描述 示例
+ 加法運算子,將兩個運算元相加。 A + B 將得到 8
- 減法運算子,從第一個運算元中減去第二個運算元。 A - B 將得到 2
* 乘法運算子,將兩個運算元相乘。 A * B 將得到 15
/ 除法運算子,將分子除以分母。 A / B 將得到 1
** 冪運算子,將一個運算元提升到另一個運算元的冪。 A ** B 將得到 125

關係運算符

下表顯示了 Fortran 支援的所有關係運算符。假設變數A持有 10,變數B持有 20,則:

顯示示例

運算子 等價 描述 示例
== .eq. 檢查兩個運算元的值是否相等,如果相等則條件為真。 (A == B) 為假。
/= .ne. 檢查兩個運算元的值是否相等,如果不相等則條件為真。 (A != B) 為真。
> .gt. 檢查左側運算元的值是否大於右側運算元的值,如果是則條件為真。 (A > B) 為假。
< .lt. 檢查左側運算元的值是否小於右側運算元的值,如果是則條件為真。 (A < B) 為真。
>= .ge. 檢查左側運算元的值是否大於或等於右側運算元的值,如果是則條件為真。 (A >= B) 為假。
<= .le. 檢查左側運算元的值是否小於或等於右側運算元的值,如果是則條件為真。 (A <= B) 為真。

邏輯運算子

Fortran 中的邏輯運算子僅對邏輯值 .true. 和 .false. 起作用。

下表顯示了 Fortran 支援的所有邏輯運算子。假設變數 A 持有 .true.,變數 B 持有 .false.,則:

顯示示例

運算子 描述 示例
.and. 稱為邏輯 AND 運算子。如果兩個運算元都不為零,則條件為真。 (A .and. B) 為假。
.or. 稱為邏輯 OR 運算子。如果兩個運算元中的任何一個不為零,則條件為真。 (A .or. B) 為真。
.not. 稱為邏輯 NOT 運算子。用於反轉其運算元的邏輯狀態。如果條件為真,則邏輯 NOT 運算子將使其為假。 !(A .and. B) 為真。
.eqv. 稱為邏輯等價運算子。用於檢查兩個邏輯值的等價性。 (A .eqv. B) 為假。
.neqv. 稱為邏輯非等價運算子。用於檢查兩個邏輯值的非等價性。 (A .neqv. B) 為真。

Fortran 中的運算子優先順序

運算子優先順序決定了表示式中項的組合方式。這會影響表示式的計算方式。某些運算子的優先順序高於其他運算子;例如,乘法運算子的優先順序高於加法運算子。

例如,x = 7 + 3 * 2;這裡,x 被賦值為 13,而不是 20,因為運算子 * 的優先順序高於 +,所以它首先與 3*2 相乘,然後加到 7 中。

這裡,優先順序最高的運算子出現在表格的頂部,優先順序最低的出現在底部。在表示式中,優先順序較高的運算子將首先計算。

顯示示例

類別 運算子 結合性
邏輯 NOT 和負號 .not. (-) 從左到右
冪運算 ** 從左到右
乘法 * / 從左到右
加法 + - 從左到右
關係 < <= > >= 從左到右
相等 == /= 從左到右
邏輯 AND .and. 從左到右
邏輯 OR .or. 從左到右
賦值 = 從右到左
廣告