当前位置: 首页 > 文档资料 > Fortran 中文教程 >

Show 例子 4

优质
小牛编辑
137浏览
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