Fortran if 语句
if 语句最简单的方式就是,将条件判断语句与执行语句放在同一行,如下所示。这也是因为执行语句比较短,放置在同一行反而代码更加美观。当然一般来说执行语句可能不是一行,甚至是多分支、多重的,因此也有单分支 if 语句、双分支 if 语句、多重 if 语句,如下所示。
!!! 最简单的 if 语句
if (条件) 执行语句
!!! 示例 6
integer n
integer i
n = 10
i = -4
if (i < 0) n = 5
print *, n
!!! 单分支 if 语句
if (条件) then
......
......
endif
!!! 示例 7
if (i < 0) then
n = 5
endif
print *, n
!!! 双分支 if 语句 (一般)
if (条件) then
......
else
......
endif
!!! 示例 8
if (i > 0) then
n = 8
else
n = 5
endif
print *, n
!!! 多重 if 语句
if (条件 1) then
.....
else if (条件 2) then
......
else
.....
endif
endif
!!! 示例 9
if (i > 0) then
n = 8
else if (i > -2) then
n = 6
else
n = 5
endif
endif
print *, n
在使用条件语句对条件变量进行比较判断时,除了我们常用的 >、< 之外,也有其他比较符号可以使用,如下表所示。
比较条件符号 | 含义 | 示例 |
---|---|---|
== | 左边等于右边 | n == 10 |
/= | 左边不等于右边 | n /= 10 |
> | 左边大于右边 | n > 10 |
>= | 左边大于或等于右边 | n >=10 |
< | 左边小于右边 | n < 10 |
<= | 左边小于或等于右边 | n <= 10 |
当我们使用条件语句的时候还有一类使用场景,就是判断一个变量值是否在一个区间,即存在一个下限值和一个上限值。如果使用我们上述的 if 语句恐怕只有多重 if 语句才能满足我们的需求了,但是这代码写起来可能有点显得多余,毕竟我们在逻辑上是想要同时判断变量值与上下限值的大小。所以 Fortran 语言的 if 语句中也存在逻辑运算符
.and.
、.or.
和.not.
,具体如下表所示。
逻辑运算符 | 含义 |
---|---|
条件 1 .and. 条件 2 | 同时满足条件 1 和条件 2 |
条件 1 .or. 条件 2 | 满足条件 1 和条件 2 之一即可 |
.not. 条件 | 不满足条件,即满足条件的相反条件 |
!!! 示例 10
if (i < 0 .and. i > -2) then
n = 5
else
n = 10
endif
我们在其他高级编程语言中可能已经习惯了类似于-2 < n < 0
这样的写法,有的时候在 Fortran 语言中也会不自觉地写成这样。但是在 Fortran 语言中这种写法是不被支持的,我们需要使用逻辑运算符.and.
来把上下限值判断连接起来,而不能写在一起。