Fortran - 逻辑运算符

下表显示了 Fortran 支持的所有逻辑运算符。 假设变量 A 保持 .true。 并且变量 B 保留 .false。 , 然后 −

运算符 描述 示例
.and. 称为逻辑AND运算符。 如果两个操作数均非零,则条件为 true。 (A .and. B) 为 false。
.or. 称为逻辑或运算符。 如果两个操作数中有任何一个非零,则条件为 true。 (A .or. B) 为 true。
.not. 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为 true,则逻辑 NOT 运算符将为 false。 !(A .and. B) 为 true。
.eqv. 称为逻辑 EQUIVALENT 运算符。 用于检查两个逻辑值是否相等。 (A .eqv. B) 为 false。
.neqv. 称为逻辑非等效运算符。 用于检查两个逻辑值不相等。 (A .neqv. B) 为 true。

示例

尝试以下示例来了解 Fortran 中可用的所有逻辑运算符 −

program logicalOp
! 该程序检查逻辑运算符
implicit none

   ! 变量声明
   logical :: a, b
   
   ! 赋值
   a = .true.
   b = .false.
   
   if (a .and. b) then
      print *, "Line 1 - Condition is true"
   else
      print *, "Line 1 - Condition is false"
   end if
   
   if (a .or. b) then
      print *, "Line 2 - Condition is true"
   else
      print *, "Line 2 - Condition is false"
   end if
   
   ! 改变值
   a = .false.
   b = .true.
   
   if (.not.(a .and. b)) then
      print *, "Line 3 - Condition is true"
   else
      print *, "Line 3 - Condition is false"
   end if
   
   if (b .neqv. a) then
      print *, "Line 4 - Condition is true"
   else
      print *, "Line 4 - Condition is false"
   end if
   
   if (b .eqv. a) then
      print *, "Line 5 - Condition is true"
   else
      print *, "Line 5 - Condition is false"
   end if
   
end program logicalOp

当你编译并执行上面的程序时,它会产生以下结果 −

Line 1 - Condition is false
Line 2 - Condition is true
Line 3 - Condition is true
Line 4 - Condition is true
Line 5 - Condition is false

❮ fortran_operators.htm