codecamp

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. 来把上下限值判断连接起来,而不能写在一起。
Fortran while 循环
Fortran goto 语句
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }