FORTRAN语言第三章[共8章].ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IF结构除了能够单独使用外,结构中的任意一个语句块里都可以再次嵌入另一个结构。 被嵌入的结构可以是另一个IF结构,也可以是另一些形态、功能不同的结构,如CASE结构、DO结构等。前提是必须将整个结构完整地嵌入到IF结构的某一个语句块中,不允许被嵌入结构的一部分在一个语句块中,另一部分在别的语句块或是不在被嵌入的IF结构中,即被嵌入的任何结构不允许跨越两个独立的语句块。;IF语句嵌套的形式可以表示如下: [构造名1:]IF(逻辑表达式1) THEN [构造名2:]IF(逻辑表达式2) THEN [构造名3:]IF(逻辑表达式3) THEN …… ENDIF[构造名3] …… ENDIF[构造名2] …… ELSE …… ENDIF[构造名1]; 一个嵌套分支结构可使用若干个块IF语句,相应就有若干个ENDIF语句,每个块IF语句还可能使用一些ELSE IF语句、ELSE语句,这就可能构成一个复杂的IF-ELSEIF-THEN-ELSE结构。当嵌套层次过多时,往往一时难以找到同一层的块IF中的各语句,一般可按以下方法确定:;例、 给定一个年份,判断是否为闰年。;例、 给定一个年份,判断是否为闰年。;使用块IF嵌套应注意以下几点: 1、不允许从块IF语句外控制转移到块IF语句的语句体内的任意位置。 2、允许通过控制转移语句(如GOTO语句)从块IF语句内控制转移到块IF语句外。 3、在嵌套的块IF语句中,内层的块IF不能和外层的块IF相互交叉。 ;IF结构除了可以实现二义判断之外,还可以实现多重判断。此时,IF结构中需加入新的元素----ELSEIF语句。 方法1:转化为单分支,逻辑IF语句并列 方法2:逐次二分,转化为块IF结构嵌套 例:将百分制转换成等级制,根据成绩x输出 A: x=90 B: 80=x90 C: 70=x80 D: 60=x70        E: x60 ;方法1:;方法2:;有了ELSE IF语句后,IF结构中可以同时存在多个判断条件和多个执行模块,但是只有其中一个条件能够成立,并且只有一个执行模块能够执行。使用IF语句和ELSE IF语句来实现多重判断的基本形式如下: IF(e1)THEN block1 ELSEIF(e2)then block2 ELSEIF(e3)then block3 -------- ELSE block ENDIF ;多分支块IF结构的执行过程为: 首先判断条件1是否成立,若条件成立(为“真”),则执行块1,再执行ENDIF后面的语句;若条件1不成立(为“假”),则判断条件2是否成立,若条件2成立(为“真”),则执行块2,再执行END IF后面的语句……如果所有的条件都不成立,则执行ELSE块(ELSE语句和块n+1是可选项),再执行END IF后面的语句。 ; 多重判断的IF结构中,判断条件的成立具有唯一性。即一旦有判断条件成立,就去执行相应的模块,如果其后仍有判断条件是成立的,也不会再去执行。这一点同后面的SELECT CASE完全不同。也就是说IF结构中的选择条件是允许重叠的,但SELECT CASE语句不允许选择条件有重叠。;1.ELSEIF语句其作用相当于将ELSE语句与其后的ELSE块中的块IF语句连接在一起。 2.同块IF语句不同, ELSEIF语句与ENDIF语句间不存在一一对应关系。 3.在这种IF结构中,允许使用多个ELSEIF语句。在最后一个ELSEIF语句之后,可以有与之对应的ELSE语句,也可以没有。当有ELSE语句在最后时,表示如果前面所有的条件都不成立,执行其后的ELSE块;如果没有ELSE块,则表示如果前面所有的条件都不成立时,流程转到ENDIF语句。;4.在同一个块IF结构中,只允许有一个ELSE语句和ELSE块。 5. ELSE IF是在“条件为假”的分支中再继续进行分支处理的。故在处理多分支的选择时,要把出现几率高的条件写在前面,以提高效率。;WRITE(*,*)请输入成绩:“ READ(*,*) a If (a = 90) Then WRITE(*,*) 优秀! Else

文档评论(0)

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

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

1亿VIP精品文档

相关文档