Show 例子 4
优质
小牛编辑
133浏览
2023-12-01
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如x = 7 + 3 * 2; 这里,x被赋值为13,而不是20,因为operator *的优先级高于+,所以它首先乘以3 * 2然后加到7中。
此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。
类别 | 操作者 | 关联性 |
---|---|---|
逻辑NOT和负号 | 。不。 ( - ) | 左到右 |
Exponentiation | ** | 左到右 |
Multiplicative | */ | 左到右 |
Additive | + - | 左到右 |
Relational | << => = | 左到右 |
Equality | ==/= | 左到右 |
Logical AND | .and. | 左到右 |
Logical OR | .or. | 左到右 |
Assignment | = | 右到左 |
例子 (Example)
尝试以下示例以了解Fortran中的运算符优先级 -
program precedenceOp
! this program checks logical operators
implicit none
! variable declaration
integer :: a, b, c, d, e
! assigning values
a = 20
b = 10
c = 15
d = 5
e = (a + b) * c/d ! ( 30 * 15 )/5
print *, "Value of (a + b) * c/d is : ", e
e = ((a + b) * c)/d ! (30 * 15 )/5
print *, "Value of ((a + b) * c)/d is : ", e
e = (a + b) * (c/d); ! (30) * (15/5)
print *, "Value of (a + b) * (c/d) is : ", e
e = a + (b * c)/d; ! 20 + (150/5)
print *, "Value of a + (b * c)/d is : " , e
end program precedenceOp
编译并执行上述程序时,会产生以下结果 -
Value of (a + b) * c/d is : 90
Value of ((a + b) * c)/d is : 90
Value of (a + b) * (c/d) is : 90
Value of a + (b * c)/d is : 50