运算符
优质
小牛编辑
138浏览
2023-12-01
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 Fortran提供以下类型的运算符 -
- 算术运算符
- 关系运算符
- 逻辑运算符
让我们一个一个地看看所有这些类型的运算符。
算术运算符 (Arithmetic Operators)
下表显示了Fortran支持的所有算术运算符。 假设变量A保持5,变量B保持3然后 -
操作者 | 描述 | 例 |
---|---|---|
+ | 加法运算符,添加两个操作数。 | A + B将给出8 |
- | 减法运算符,从第一个减去第二个操作数。 | A - B将给2 |
* | 乘法运算符,将两个操作数相乘。 | A * B将给出15 |
/ | 除法运算符,用除分子除分子。 | A/B将给1 |
** | 指数运算符,将一个操作数提升到另一个操作数。 | A ** B将给出125 |
关系运算符 (Relational Operators)
下表显示了Fortran支持的所有关系运算符。 假设变量A保持10,变量B保持20,则 -
操作者 | 当量 | 描述 | 例 |
---|---|---|---|
== | .eq. | 检查两个操作数的值是否相等,如果是,则条件变为真。 | (A == B)不是真的。 |
/= | .ne. | 检查两个操作数的值是否相等,如果值不相等则条件变为真。 | (A!= B)是真的。 |
> | .gt. | 检查左操作数的值是否大于右操作数的值,如果是,则条件变为真。 | (A> B)不是真的。 |
< | .lt. | 检查左操作数的值是否小于右操作数的值,如果是,则条件变为真。 | (A < B) 为真 |
>= | .ge. | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为真。 | (A> = B)不是真的。 |
<= | .le. | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为真。 | (A <= B)是真的。 |
逻辑运算符 (Logical Operators)
Fortran中的逻辑运算符仅适用于逻辑值.true。 和.false。
下表显示了Fortran支持的所有逻辑运算符。 假设变量A保持.true。 变量B保持.false。 那么 -
操作者 | 描述 | 例 |
---|---|---|
.and. | 称为逻辑AND运算符。 如果两个操作数都不为零,则条件成立。 | (A。和.B)是假的。 |
.or. | 称为逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 | (A。或.B)是真的。 |
.not. | 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则Logical NOT运算符将为false。 | !(A。和。B)是真的。 |
.eqv. | 称为逻辑等效运算符。 用于检查两个逻辑值的等效性。 | (A .eqv.B)是假的。 |
.neqv. | 称为逻辑非等价运算符。 用于检查两个逻辑值的非等价性。 | (A .neqv.B)是真的。 |
Fortran中的运算符优先级
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如,x = 7 + 3 * 2; 这里,x被赋值为13,而不是20,因为operator *的优先级高于+,所以它首先乘以3 * 2然后加到7中。
此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。
类别 | 操作者 | 关联性 |
---|---|---|
逻辑NOT和负号 | 。不。 ( - ) | 左到右 |
Exponentiation | ** | 左到右 |
Multiplicative | */ | 左到右 |
Additive | + - | 左到右 |
Relational | << => = | 左到右 |
Equality | ==/= | 左到右 |
Logical AND | .and. | 左到右 |
Logical OR | .or. | 左到右 |
Assignment | = | 右到左 |