Fortran条件语句
Fortran中有主要有两种条件结构语句,一种是通过if实现,另外一种是通过select实现。
if 语句
最简单的逻辑结构为:
1 | if(条件) 语句体 |
若条件成立,则执行语句体。
例子:
1 | if(a>5) b=6 |
若a的数值大于5,则就给变量赋值为6。
稍复杂一些的逻辑结构为:
1 | if(条件) then |
若条件成立,则实行语句体1,否则执行语句体2。
例子:
1 | 1 if(a>5) then |
判断条件不止一个的条件结构为:
1 | if(条件1) then |
若满足条件1则执行语句体1,否则判断条件2,若满足执行语句体2,否则判断……
注意这里的第二个if后面还要跟一个then,不要漏掉。
select 语句
select语句有点类似C/C++中的switch语句。结构为:
1 | select case(a) |
select后面紧跟的那个case中放置的是用于判断的变量,这里只能为整型。若当前a的值为数值1,则会执行语句体1,否则会去匹配其他数值,执行相应的语句体。若都未匹配,则会执行case default之后的语句(可省略)。这里的数值可以是一个数,也可以是一个范围,也可以为几个离散的数。
注意这里和C/C++中switch语句不同之处在于,在C/C++中若要实现和Fortran中相同的功能,则需要在每个case语句执行完之后加上一条”break”(Fortran中对应的关键字为exit)语句,否则会顺序将剩余的case都执行,而在Fortran中执行完对应的case语句体之后就会退出整个逻辑结构。
例子:
1 | 1 select case(a) |
条件语句也可以进行逻辑嵌套,例如if语句中的语句体中还含有if语句。
写在最后
Fortran还允许使用if和goto组合进行逻辑跳转,例如其中一种结构:
1 | if(条件) goto 1000 |
这里的含义是,若满足条件,则会直接跳转到名为1000的语句体2,跳过语句体1。可以遇见的是,goto可以实现上下跳转,有时会使程序逻辑结构混乱,使得逻辑结构不再平面。从而不再建议使用goto语句。一般老代码中充斥着goto语句,看懂即可。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.