逻辑类型logical用以保存判断结果,适合表示数学命题是否成立、矩阵是否奇异、物理实验条件是否满足、工程开关是否打开、传感器是否在线、阀门是否关闭、温度是否超过设定值、迭代是否收敛、数据是否有效等真假状态。
本文代码
program logicalDemo
implicit none
real :: pi ! real类型定义圆周率近似值
real :: e ! real类型定义自然底数近似值
logical :: isPiGreaterThanE ! logical类型保存pi是否大于e的判断结果
logical :: isPiEqualE ! logical类型保存pi是否等于e的判断结果
pi=3.14
e=2.71
isPiGreaterThanE=pi>e ! pi大于e,关系表达式返回.true.
isPiEqualE=pi==e ! pi不等于e,相等表达式返回.false.
print *,"logical逻辑类型:"
print *,"pi=",pi
print *,"e=",e
print *,"isPiGreaterThanE=",isPiGreaterThanE
print *,"isPiEqualE=",isPiEqualE
print *,"2.eq.2=",2 .eq. 2
print *,"2.ne.1=",2 .ne. 1
print *,"2.lt.1=",2 .lt. 1
print *,"2.le.2=",2 .le. 2
print *,"2.gt.1=",2 .gt. 1
print *,"2.ge.3=",2 .ge. 3
end program logicalDemo
编译运行
(base) hong@hongdeMacBook-Pro 009.logical % gfortran exampleLogical.f90
(base) hong@hongdeMacBook-Pro 009.logical % ./a.out
logical逻辑类型:
pi= 3.14000010
e= 2.71000004
isPiGreaterThanE= T
isPiEqualE= F
2.eq.2= T
2.ne.1= T
2.lt.1= F
2.le.2= T
2.gt.1= T
2.ge.3= F
(base) hong@hongdeMacBook-Pro 009.logical %结果分析
- 输出单精度实数pi和e的近似值。
- isPiGreaterThanE=T对应代码isPiGreaterThanE=pi>e,因为3.14>2.71,成立,True。
- isPiEqualE=F对应代码isPiEqualE=pi==e,是对pi==e做真假判断赋值给isPiEqualE,不成立,False。
- 以下列举了点式关系运算符,务必熟记。
| 点式关系运算符 | 关系运算符 | 英文原义 | 中文释义 | 原式举例 | 原式结果 |
| .eq. | == | equal | 等于 | 2.eq.2 | T |
| .ne. | ≠ | not equal | 不等于 | 2.ne.1 | T |
| .lt. | < | less than | 小于 | 2.lt.1 | F |
| .le. | <= | less than or equal | 小于等于 | 2.le.2 | T |
| .gt. | > | greater than | 大于 | 2.gt.1 | T |
| .ge. | >= | greater than or equal | 大于等于 | 2.ge.3 | F |
知识点总结
- 逻辑常量只有两个——".true."和".false.",而且fortran不允许使用C语言的define false true或define true false重新定义成相反逻辑。
- 关系表达式会返回逻辑值。
- 大于等于或小于等于在判断中满足其中任意一条即成立为真,如2.le.2返回.true.。