02-Fortran基础--Fortran操作符与控制结构


0 引言

  运算符和控制流程对编程语言是必须的,Fortran的操作符和控制流程涉及到各种数学运算符、逻辑运算符以及控制结构。下面是Fortran的运算符和控制流程的基础内容。

1 操作符

1.1 数学运算符

  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • ** 幂运算
a = 10
b = 5
c = a + b     ! c = 15
d = a * b     ! d = 50
e = a ** 2    ! e = 100

1.2 逻辑运算符

  • .and. 逻辑与
  • .or. 逻辑或
  • .not. 逻辑非
logical :: p, q, r
p = .true.
q = .false.
r = p .and. q   ! r = .false.

1.3 关系运算符

关系运算符名称写法1写法2
等于==.eq.
不等于/=.ne.
小于<.lt.
小于等于<=.le.
大于>.gt.
大于等于>=.ge.
integer(4) :: x, y
x = 10
y = 5
if (x > y) then
    continue ! 执行操作
end if
if(x .le. y)then ! 判断条件等价于 if(x<=y)then
	continue ! continue关键字表示继续执行,理解为占位;
end if

2 控制流程

2.1 条件结构

IF-THEN:根据条件执行不同的操作。

! 条件判断语句的一般形式
if (condition) then
    ! 执行操作
end if

示例:

	program test2
    real(8) :: x
    call RANDOM_SEED() ! 随机种子
    call RANDOM_NUMBER(x) ! 生成[0-1]的随机数赋值给x
    if(x > 0.5)then ! 判断随机数是否大于0.5
        print *,'x>',0.5
    else
        print *,'x<=',0.5
    endif
	end program

2.2 循环结构

  Fortran 中的循环结构主要包括 DO 循环和 DO WHILE 循环。

2.2.1 DO循环
  DO:执行指定次数的循环。

do index = start, end, step
    ! 循环体
end do

其中:

index 是循环控制变量,它在每次循环迭代时递增或递减。
start 是循环控制变量的初始值。
end 是循环控制变量的结束值。循环将一直执行,直到 index 达到或超过 end。
step 是循环控制变量的步长。如果 step 为正值,则 index 在每次迭代时递增;如果 step 为负值,则 index 在每次迭代时递减。

  在循环体中,你可以执行任意操作,包括数学计算、逻辑判断、数组操作等。例如:

示例

PROGRAM LoopExample
    IMPLICIT NONE
    INTEGER :: i

    ! 打印从110的偶数
    DO i = 2, 10, 2
        PRINT *, i
    END DO

END PROGRAM LoopExample

  在上面的例子中,循环控制变量 i 的初始值为2,结束值为10,步长为2。因此,循环将从2开始,每次递增2,直到达到或超过10。在循环体中,PRINT * 语句用于打印循环变量 i 的值,从而打印出从2到10的所有偶数。

2.2.1 DO WHILE循环
  DO WHILE 循环用于在满足条件时重复执行一段代码,其一般形式如下:

DO WHILE (condition)
    ! 执行的代码
END DO

  condition 是一个逻辑表达式,当其为真时循环继续执行,为假时循环结束。

示例:

PROGRAM DoWhileExample
    IMPLICIT NONE
    INTEGER(4) :: count

    count = 0
    DO WHILE (count < 5)
        count = count + 1
        PRINT *, "循环次数:", count
    END DO
END PROGRAM DoWhileExample

  在这个示例中,当 count 小于 5 时,循环继续执行,每次增加 count 的值,并打印出循环次数。当 count 达到 5 时,循环结束。

  这些是 Fortran 中常用的循环结构,它们可以帮助你重复执行特定的代码块,实现各种算法和任务。

2.3 分支结构

  Fortran 中的分支结构通常有 IF 语句和 SELECT CASE 语句两种形式。

2.3.1 IF 语句
  IF 语句用于根据条件执行不同的代码块。它的一般形式如下:

IF (condition) THEN
    ! 如果条件为真,则执行此处的代码
ELSEIF (condition2) THEN
    ! 如果上一个条件为假且条件2为真,则执行此处的代码
ELSE
    ! 如果所有条件都为假,则执行此处的代码
END IF

  其中,condition、condition2 等是逻辑表达式,可以是关系运算、逻辑运算的组合,用于判断是否执行相应的代码块。

示例:

PROGRAM IfExample
    IMPLICIT NONE
    INTEGER :: x

    x = 10

    IF (x > 0) THEN
        PRINT *, "x 是正数"
    ELSEIF (x < 0) THEN
        PRINT *, "x 是负数"
    ELSE
        PRINT *, "x 是零"
    END IF

END PROGRAM IfExample

  在这个示例中,根据 x 的值,打印出不同的消息。

2.3.2 SELECT CASE 语句
  SELECT CASE 语句用于根据表达式的值选择执行不同的代码块。它的一般形式如下:

SELECT CASE (expression)
    CASE (value1)
        ! 如果表达式的值等于 value1,则执行此处的代码
    CASE (value2)
        ! 如果表达式的值等于 value2,则执行此处的代码
    CASE DEFAULT
        ! 如果表达式的值与所有值都不匹配,则执行此处的代码
END SELECT

示例:

PROGRAM SelectCaseExample
    IMPLICIT NONE
    INTEGER :: day

    day = 3

    SELECT CASE (day)
        CASE (1)
            PRINT *, "星期一"
        CASE (2)
            PRINT *, "星期二"
        CASE (3)
            PRINT *, "星期三"
        CASE DEFAULT
            PRINT *, "未知"
    END SELECT

END PROGRAM SelectCaseExample

  在这个示例中,根据 day 的值,打印出相应的星期几。希望这些示例能够帮助你理解 Fortran 中的分支结构。

  通过控制结构,可以实现根据不同条件执行不同的代码块、重复执行一段代码、选择不同的执行路径、以及控制循环的流程。这些控制结构在Fortran编程中起着至关重要的作用,帮助程序实现复杂的逻辑和算法

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咋(za)说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值