0
なぜこの値がfalseと評価されるのかわかりません。Fortran論理的比較
A = .false。 B =。
(A .eqv .true。または.B .eqv .True。)は私に偽を与えます。
条件文を動作させるためにパラセシスを追加する必要があります。誰も私にこのことを説明できますか?どうもありがとう!
なぜこの値がfalseと評価されるのかわかりません。Fortran論理的比較
A = .false。 B =。
(A .eqv .true。または.B .eqv .True。)は私に偽を与えます。
条件文を動作させるためにパラセシスを追加する必要があります。誰も私にこのことを説明できますか?どうもありがとう!
私はそれが操作の順序だと思います。 .or.
私はだからあなたの文が
((A .eqv. (.true. .or. B)) .eqv. .true.)
((A .eqv. .true. ) .eqv. .true.)
( .false. .eqv. .true.)
.false.
していないが、確かに相当し.eqv.
よりも操作の高次を持っていると思います。
いずれかの方法、それは括弧で意図した順序を強制するのは簡単です:
((A .eqv. .true.) .or. (B .eqv. .true.))
(もちろん、あなたの例では、(A .or. B)
に凝縮することができますが、私はそれがポイントではなかったと思います;))
あなたはあなたの答えにもっと確かめることができます:それは正しいです。演算子の優先順位については、たとえばFortran 2008の表7.1を参照してください。 – francescalus
宣言などが表示されていない場合は、「A.eqv..ru」を「A」で置き換えることはできません(https://stackoverflow.com/a/29034913)。 – francescalus