Fortran逻辑比较

时间:2016-06-23 03:29:16

标签: fortran comparison logical-operators

我不明白为什么这个被评估为假。

{{1}}

(A .eqv .true。或.B .eqv .true。)给了我.false。

我必须添加括号以使条件语句有效。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:4)

我认为这是运营的顺序。 .or.我认为操作的顺序高于.eqv.

所以你的陈述相当于

((A .eqv. (.true. .or. B)) .eqv. .true.)
((A .eqv.     .true.     ) .eqv. .true.)
(     .false.              .eqv. .true.)
                .false.

不确定。

无论哪种方式,都可以通过括号强制执行预期的订单:

((A .eqv. .true.) .or. (B .eqv. .true.))

(当然,您的示例可以缩写为(A .or. B),但我想这不是重点;)