fortran fortran中文资料网
手气不错
Article

023.doStep_步长循环与逆向循环

步长循环与逆向循环在计数循环中加入步长,既可以隔项遍历,也可以用负步长倒序遍历。

计数do循环的第三个控制值是步长。正步长让循环变量递增,负步长让循环变量递减,因此同一种结构既能正向遍历,也能逆向遍历。

  • do angleDegree=0,90,30从0开始,每轮增加30。
  • do angleDegree=90,0,-30从90开始,每轮减少30。
  • 步长方向必须能够从起始值走向终止值。

本文代码

! do循环可指定步长,步长为负数时可逆向循环。
program doStepDemo
  implicit none
  integer :: angleDegree

  print "(A)","do步长与逆向循环:"
  print "(A)","正向每次增加30度:"
  do angleDegree=0,90,30
    print "(A,I4)","角度=",angleDegree
  end do
  print "(A)","逆向每次减少30度:"
  do angleDegree=90,0,-30
    print "(A,I4)","角度=",angleDegree
  end do
end program doStepDemo

编译运行

(base) hong@hongdeMacBook-Pro 025.doStep % gfortran exampleDoStep.f90
(base) hong@hongdeMacBook-Pro 025.doStep % ./a.out
do步长与逆向循环:
正向每次增加30度:
角度=   0
角度=  30
角度=  60
角度=  90
逆向每次减少30度:
角度=  90
角度=  60
角度=  30
角度=   0

结果分析

第一个循环输出0、30、60、90,说明正步长30控制angleDegree递增。

第二个循环输出90、60、30、0,说明负步长-30控制angleDegree递减;两个端点都被输出。

知识点总结

  • 计数do的完整控制形式可以写成起始值、终止值、步长。
  • 正步长用于递增循环,负步长用于逆向循环。
  • 本例两个循环分别演示30和-30对angleDegree的更新。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注