第一范文网 - 专业文章范例文档资料分享平台

Fortran语言基础 - 图文

来源:用户分享 时间:2025/5/30 21:24:04 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

山东建筑大学

do k=1,10 {程 序 代 码} end do end do end do

DO循环有明确的循环次数,在已知需要循环的次数时使用。若事先无法知道循环的次数,采用下面的循环方式。

4.2 DO WHILE循环

语法:

do while (逻辑表达式) 循环体 end do

例 利用循环计算2+4+6+8+10

program ex0604 implicit none

integer, parameter :: limit=10 ! 计数器的上限 integer counter ! 计数器 integer :: ans = 0 ! 拿来累加使用 counter = 2 ! 设定计数器初值 do while( counter <= limit ) ans = ans + counter

counter = counter + 2 ! 计数器累加 end do write(*,*) ans stop end

例 猜体重

program ex0605

29

数值分析程序设计——Fortran基础

implicit none

real, parameter :: weight=45.0 real, parameter :: e = 0.001 real :: guess = 0.0

do while( abs(guess-weight) > e ) write(*,*) \ read(*,*) guess end do

write(*,*) \ stop end

Do While循环使用时应当注意正确设置循环判断表达式,以免进入死循环。

4.3 循环的流程控制

4.3.1 CYCLE命令

CYCLE命令可以略过循环的程序模块中,在CYCLE命令后面的所有程序代码,直接跳回循环的开头来进行下一次循环。

例 假设某大楼共有9层,但电梯在4层不停,试写一个程序仿真大楼电梯从一层到九层的信号显示情况。

program ex0606 implicit none integer :: dest = 9 integer floor do floor=1, dest if ( floor==4 ) cycle write(*,*) floor end do stop end

30

山东建筑大学

4.3.2 EXIT命令

EXIT的功能是直接跳出当前循环。 例 猜体重

program ex0607 implicit none

real, parameter :: weight=45.0 real, parameter :: error=0.0001 real :: guess = 0.0

do while( .true. ) !循环条件永远成立 write(*,*) \ read(*,*) guess

if ( abs(guess-weight)

write(*,*) \ stop end

4.3.2 署名的循环

循环署名可以在编写程序时,明确知道END DO这个描述的位置是否正确。

program ex0609 implicit none integer :: i,j loop1: do i=1,3 loop2: do j=1,3

if ( i==3 ) exit loop1 ! 跳离loop1循环 if ( j==2 ) cycle loop2 ! 重做loop2循环 write(*, \ end do loop2 end do loop1 stop

31

数值分析程序设计——Fortran基础

end

4.4 循环的应用

循环是程序编写时不可缺少的工具之一。下面通过几个实例,说明循环的使用方法。

例1 计算等差数列1+2+3+4+…+99+100 program ex0610 implicit none integer counter integer :: ans = 0 do counter = 1, 100 ans = ans + counter end do write(*,*) ans stop end

执行结果:5050

例2 计算Fibonacci数列。费氏数列的规则为:fn?fn?1?fn?2。

program ex0611 implicit none integer counter integer :: fn_1 = 1 integer :: fn_2 = 0 integer :: fn = 0 write(*,*) fn_2 write(*,*) fn_1 do counter = 3, 10 fn = fn_2 + fn_1 write(*,*) fn

32

f0?0,f1?1,当n?1时

搜索更多关于: Fortran语言基础 - 图文 的文档
Fortran语言基础 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9kxkv2vxon207lq1bafn_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top