声明:本博文翻译自:https://www.tutorialspoint.com/fortran/fortran_loops.htm编程语言提供各种控制结构,允许更复杂的执行路径。
循环语句允许我们多次执行一个语句或一组语句。
fortran提供了下面三种类型循环。分别是do loop; do while loop; nested loop
下面进行详解:
1. do loop
do loop的一般形式为:
do var = start, stop [,step]    ! statement(s)…
end do
这里需要注意:循环变量var必须是整型;start为循环变量初值;stop为循环变量终值;step为循环变量的增量。当省略step时,默认为1。注意:step也可以是负数,此时start > stop.
示例代码2如下:
Program mainimplicit noneinteger :: ido i = 1, 10write(*,'(1x,g0)') iend do
End program main
用ivf,执行结果为:
1
2
3
4
5
6
7
8
9
10
示例代码2:用来计算10!
Program factorial  implicit none  integer :: nfact = 1   integer :: n  do n = 1, 10      nfact = nfact * n write(*,'(1x,g0,3x,g0)') n, nfact   end do end program factorial
用ivf,执行结果如下:
1             1
2             2
3             6
4            24
5           120
6           720
7          5040
8         40320
9        362880
10       36288002. do while loop
当给定条件为真时,它重复执行一个或一组语句。它在执行循环体之前进行条件测试。
基本语法如下:
do while (logical expr) statements
end do
示例代码如下:
Program factorial  implicit none  integer :: nfact = 1   integer :: n = 1 do while (n <= 10)       nfact = nfact * n n = n + 1  !.. do while loop多了这一句write(*,'(1x,g0,3x,g0)') n, nfact end do
End program factorial
执行结果如下:
2             1
3             2
4             6
5            24
6           120
7           720
8          5040
9         40320
10        362880
11       36288003. nested loops
此种循环方式叫多重循环。一个简单的示例如下:
iloop: do i = 1, 3print*, "i: ", ijloop: do j = 1, 3         print*, "j: ", j         kloop: do k = 1, 3print*, "k: ", kend do kloopend do jloop
end do iloop
此处给出示例代码:
Program nestedLoop implicit noneinteger:: i, j, kiloop: do i = 1, 3      jloop: do j = 1, 3         kloop: do k = 1, 3              print*, "(i, j, k): ", i, j, k               end do kloop       end do jloopend do iloopEnd program nestedLoop
用ivf,执行结果如下:(i, j, k):            1           1           1(i, j, k):            1           1           2(i, j, k):            1           1           3(i, j, k):            1           2           1(i, j, k):            1           2           2(i, j, k):            1           2           3(i, j, k):            1           3           1(i, j, k):            1           3           2(i, j, k):            1           3           3(i, j, k):            2           1           1(i, j, k):            2           1           2(i, j, k):            2           1           3(i, j, k):            2           2           1(i, j, k):            2           2           2(i, j, k):            2           2           3(i, j, k):            2           3           1(i, j, k):            2           3           2(i, j, k):            2           3           3(i, j, k):            3           1           1(i, j, k):            3           1           2(i, j, k):            3           1           3(i, j, k):            3           2           1(i, j, k):            3           2           2(i, j, k):            3           2           3(i, j, k):            3           3           1(i, j, k):            3           3           2(i, j, k):            3           3           3除了上面介绍的三种循环类型,还有三种循环控制语句。分别是exit;cycle;stop
exit: 跳出离exit最近的外层循环。如果循环有署名,也可以跳出对应的署名循环
示例代码:
Program exittestimplicit noneinteger:: i, j, kiloop: do i = 1, 3      jloop: do j = 1, 3         kloop: do k = 1, 3    print*, "(i, j, k): ", i, j, k               if (k==2) thenexit jloop  !..  k = 2时,跳出jloopend ifend do kloop       end do jloop  end do iloop End program exittest
用ivf,执行结果如下:
(i, j, k): 1  1  1
(i, j, k): 1  1  2
(i, j, k): 2  1  1
(i, j, k): 2  1  2
(i, j, k): 3  1  1
(i, j, k): 3  1  2cycle: cycle类似于exit,都在循环体内部。一般与if语句搭配使用。当条件满足时,cycle跳过循环,注意不是跳出循环。这一点与exit不同。
示例代码如下:
Program cycle_example     implicit none     integer :: i     do i = 1, 20          if (i == 5) then cycle          end if         print*, i      end do  End program cycle_example
用ivf,执行结果如下:
1
2
3
4
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20stop: stop代表程序的终止。
示例代码:
Program mainimplicit noneinteger :: i do i = 1, 10if ( i == 5 ) stopprint*, iend do
End program main
执行结果为:
1
2
3
4

Fortran:do循环相关推荐

  1. Fortran学习3:控制流2:循环

    一个程序中循环是非常重要的,他会控制变量进行多次相同运算,在数组操作中有着不可替代的地位,今天就走进Fortran的循环,感受一下循环的乐趣. 哦,对了,Fortran程序在stop之前,可以加一个p ...

  2. Fortran入门 - 基本语法一篇通

    0. 前些日子为了准备汇报学了Fortran这个语言,最近又要用到发现有些些忘记了,所以写一篇博客整理记录学了些啥就当复习~ 主要内容还是比较基本的语法,一些小细节等以后有机会来补上吧(下次一定.jp ...

  3. 中兴面试总结,华为。技术,市场

    1,软件测试,如何把这个测试做的更好. 进到一个新项目,作为测试人员应该都是想把测试做好,项目在符合客户质量要求的情况下按时交付的吧.但往往都事与愿违,造成这个结果的原因有很多很多.通过这段时间做自动 ...

  4. fortran教程4:判断和循环语句

    文章目录 判断语句 select case语句 do循环 while循环 exit, cycle, stop 前情提要: 1 安装和编译

  5. Fortran 逻辑运算 与 循环(DO)相关

    Fibonacci sequences参考 参考链接

  6. 这些代码改变了科学界:从Fortran、arXiv到AlexNet

    转自:机器之心 2019 年,「事件视界望远镜」团队拍下了第一张黑洞照片.这张照片并非传统意义上的照片,而是计算得来的--将美国.墨西哥.智利.西班牙和南极多台射电望远镜捕捉到的数据进行数学转换.该团 ...

  7. 在2D数组上进行迭代时,为什么循环顺序会影响性能?

    本文翻译自:Why does the order of the loops affect performance when iterating over a 2D array? Below are t ...

  8. linux控制流程,Linux-流程控制:for 循环

    在这关于流程控制的最后一章中,我们将看看另一种 shell 循环构造.for 循环不同于 while 和 until 循环,因为 在循环中,它提供了一种处理序列的方式.这在编程时非常有用.因此在 ba ...

  9. il和idl区别_我来给普及一下matlab、IDL、fortran神马的区别吧

    我来给普及一下matlab.IDL.fortran神马的区别吧 (2014-12-22 13:13:44) 标签: matlab idl c fortan 看到有人纠结这些东西,我来说说我的经验吧.不 ...

最新文章

  1. struts2上传图片的全过程
  2. Spring中的18个注解,你会几个?
  3. 判断三维坐标系旋转正方向的简单方法
  4. set和multiset
  5. 在servlet中设置的字符编码集为什么还会出现乱码(亲测)
  6. c++矩阵转置_C语言:数据结构-稀疏矩阵的压缩存储
  7. defaultdict python_Python使用defaultdict读取文件各列的方法
  8. 【Android源代码下载】收集整理android界面UI效果源码
  9. excel diy工具箱_我是工具控:excel最酷工具箱 — 方方格子
  10. Fast上传图片成功,FastDFSweb页面显示失败
  11. asp.net伪静态配置
  12. continue和break详解
  13. 百度编辑器 UEditor 使用方法 及 如何设置固定高度且带滚动条及 如何设置修改传值的 name 属性
  14. 机器学习(周志华) 第十六章强化学习
  15. html li 点图片,html中ul li前面小黑点样式 ul li一些样式
  16. android自定义键盘 下划线,TabLayout 自定义下划线
  17. c# 中控 触摸精灵_触摸精灵脚本编辑器
  18. 垃圾网线,毁我青春(ubuntu安装失败)
  19. Math:泰勒(Taylor)公式
  20. python修改二进制文件_python二进制修改bcwav文件

热门文章

  1. 别再逼三星了,它在起死回生的路上挣扎很久了
  2. java计算机毕业设计毕业生离校管理系统源码+mysql数据库+系统+lw文档+部署
  3. 最新《手绘POP插画完整详解》
  4. 湖北工业大学数据结构用头文件、数据结构与算法王立柱2013
  5. 上twitch_我在Twitch上进行现场编码的第一年的经验
  6. 视频分辨率不变,压缩视频
  7. 6.1软件缺陷——bug
  8. 干货|纳税人须知的纳税信用那些事儿
  9. Go1.20 继续小修小补 errors 库。。。
  10. android4版本的手机有,Android版本份额:还有两成人用安卓4.4