运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 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) 不为 true. |
/= | .ne. | 检查,两个操作数的值相等与否,如果值不相等,则条件变为真。 | (A != B) 为 true. |
> | .gt. | 检查,左操作数的值是否大于右操作数的值,如果是的话那么条件为真。 | (A > B) 不为true. |
< | .lt. | 检查,左操作数的值是否小于右操作数的值,如果是的话那么条件为真。 | (A < B) 为 true. |
>= | .ge. | 检查,左边的操作数的值是否大于或等于右操作数的值,如果是,则条件变为真。 | (A >= B) 不为 true. |
<= | .le. | 检查,左边的操作数的值是否小于或等于右操作数的值,如果是,则条件变为真。 | (A <= B) 为 true. |
逻辑运算符
逻辑运算符在Fortran语言工作只能在逻辑值.true. 和.false。
下面的表列出了所有由Fortran语言支持的逻辑运算符。假设变量A=.true。和变量B=.false ,则:
操作符 | 描述 | 示例 |
---|---|---|
.and. | 所谓逻辑与运算符。如果这两个操作数都为非零,则条件变为真。 | (A .and. B) 为 false. |
.or. | 所谓逻辑OR运算符。如果有两个操作数不为零,则条件变为真。 | (A .or. B) 为 true. |
.not. | 所谓逻辑非运算符。使用反转操作数的逻辑状态。如果条件为真,则逻辑非运算符将返回false。 | !(A .and. B) 为 true. |
.eqv. | 所谓逻辑上相当于运算符。用于检查两个逻辑值等价。 | (A .eqv. B) 为 false. |
.neqv. | 所谓逻辑非对等操作。用于检查两个逻辑值的非对等。 | (A .neqv. B) 为 true. |
Fortran语言运算符优先级
运算符优先级来确定条件的表达式中的分组。这会影响一个表达式的求值。某些运算符的优先级高于其他;例如,乘法运算符的优先级比加法运算符更高。
例如x= 7+ 3* 2;这里,x被赋值13,而不是20,因为运算符*的优先级高于+,所以它首先被乘以3 * 2,然后再加上7。
这里,具有最高优先级运算符出现在表的顶部,那些具有最低出现在底部。在一个表达式,更高的优先级运算符将首先计算。
分类 | 运算符 | 关联 |
---|---|---|
逻辑NOT和负号 | .not. (-) | 从左到右 |
幂 | ** | 从左到右 |
乘 | * / | 从左到右 |
加 | + - | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
逻辑与 | .and. | 从左到右 |
逻辑或 | .or. | 从左到右 |
赋值 | = | 从右到左 |