Fortran-第三讲(含习题课与实验一).pptx

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Fortran-第三讲(含习题课与实验一)

Fortran程序设计 第三讲 循环控制 回顾第二讲 逻辑运算 逻辑常量: .TRUE. .FALSE. 关系运算符: == = = /= 组合逻辑运算符: .AND. .OR. .EQV. .NEQV. .NOT. IF结构 CASE结构 简单IF结构 IF … ELSE …结构 IF … ELSEIF … ELSE… 结构 逻辑IF语句 选择子只能是整数、字符或逻辑表达式 第三讲 内容 DO循环 DO WHILE循环 迭代或计数循环 CYCLE和EXIT语句 习题课 循环结构 在程序设计中,总是会遇到一些重复执行的代码,显然,我们不可能将一段重复N次代码的代码书写N次,解决这一问题的方法是在程序中使用循环结构 结构化程序设计中的三种基本结构 顺序结构 分支结构 循环结构 3.1 DO 循环 一般形式: DO … IF (逻辑表达式) EXIT … END DO 在DO和END DO之间的语句块重复执行,直到逻辑表达式为真的时候,执行EXIT,EXIT的执行会控制程序转到END DO之后的第一条语句处 例3.1.1:计算S=1+2+3+…+100的值 INTEGER ::i=1,s=0 DO s=s+i IF (i==100) EXIT i=i+1 END DO 例3.1.2:令s=1+2+3+…+n,求满足s5000的最小n值: INTEGER ::i=1,s=0 DO s=s+i IF (s5000) EXIT i=i+1 END DO WRITE (*,*) i,s 3.2 DO WHILE循环 一般形式: DO WHILE(逻辑表达式) … … … … END DO 例3.2.1:用DO WHILE形式实现例3.1.1 INTEGER ::i=1,s=0 DO WHILE(i=100) s=s+i i=i+1 END DO 3.3 迭代或计数循环 通常,以特定次数执行一个语句块可以采用这样的形式: DO index=istart,iend,incr … … … END DO index是整型变量,称为循环计数器或循环控制变量 如果incr是1,也就是每循环一次,计数器加1的话,incr可以省略 详解 三个循环参数istart,iend和incr可以是常量、变量或表达式。如果是变量或表达式,其值是在循环开始前进行计算,产生的数值用于控制循环 循环过程: 在DO循环执行的开始处,程序将数值istart赋给控制变量index,如果index*incr≤iend*incr,程序执行循环体内的语句 在循环体内的语句被执行后,控制变量重新计算为: index=index+incr 如果index*incr≤iend*incr,程序再次执行循环体内的语句 只要index*incr≤iend*incr,第二步就反复执行,当该条件不满足时,就跳到DO循环的结尾处执行其后面的第一条语句 循环次数的计算 DO i=1,10 … END DO DO i=1,10,2 … END DO DO i=1,10,-1 … END DO DO i=3,-3,-2 … END DO 3.3 计数循环的使用细节 循环体内的语句缩进以提高程序的可读性 控制变量不能在循环体内修改 计数器递增计数和递减计数都是可以的 循环控制变量和参数,应该总是整数 在循环体内,也可以采用IF () EXIT 语句随时退出循环 如果循环正常结束,循环控制变量的值并不是确定的(依编译器而定),所以,不要依赖这个值 3.3 例程 用计数循环的方法来计算s=1+2+...+100 !例程3_3_1.f90 PROGRAM example3_3_1 INTEGER :: i,s=0 DO i=1,100 s=s+i END DO WRITE(*,*) i,s END PROGRAM example3_3_1 3.4 CYCLE语句 如果CYCLE语句在循环体内执行,那么当前循环马上会被中止,控制器将返回循环的顶部,继续下一个循环 PROGRAM test_cycle INTEGER ::i DO i=1,5 IF (i==3) CYCLE WRITE (*,*) i END DO WRITE (*,*) ‘End of loop!’ END PROGRAM test_cycle CYCLE常用来在循环中跳过某些特定的数,比如下面是跳过所有偶数: PROGRAM test_cycle INTEGER ::i DO i=1,10 IF (MOD(i,2)=0) CYCLE WRITE (*,*)

文档评论(0)

sh4125733 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档