fortran语言第3章(共8章).ppt
《fortran语言第3章(共8章).ppt》由会员分享,可在线阅读,更多相关《fortran语言第3章(共8章).ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、nIF结构除了能够单独使用外,结构中的任意一个语句块里都可以再次嵌入另一个结构。n被嵌入的结构可以是另一个IF结构,也可以是另一些形态、功能不同的结构,如CASE结构、DO结构等。前提是必须将整个结构完整地嵌入到IF结构的某一个语句块中,不允许被嵌入结构的一部分在一个语句块中,另一部分在别的语句块或是不在被嵌入的IF结构中,即被嵌入的任何结构不允许跨越两个独立的语句块。二、块IF的嵌套第二节第二节 块块IF选择结构选择结构IF语句嵌套的形式可以表示如下:构造名1:IF(逻辑表达式1)THEN 构造名2:IF(逻辑表达式2)THEN 构造名3:IF(逻辑表达式3)THEN ENDIF构造名3 E
2、NDIF构造名2 ELSEENDIF构造名1第二节第二节 块块IF选择结构选择结构一个嵌套分支结构可使用若干个块IF语句,相应就有若干个ENDIF语句,每个块IF语句还可能使用一些ELSE IF语句、ELSE语句,这就可能构成一个复杂的IF-ELSEIF-THEN-ELSE结构。当嵌套层次过多时,往往一时难以找到同一层的块IF中的各语句,一般可按以下方法确定:(1)从最内层的块IF语句开始,向下找到离它最近的ENDIF语句,将它们用线括起来,这就是同一层次的块IF。(2)由内向外重复这一个过程,直到遇见最外层块IF语句和ENDIF语句为止。(3)在书写嵌套分支结构时采取缩进方式进行程序书写,程
3、序的嵌套层次就容易确定。例、给定一个年份,判断是否为闰年。分析:闰年的判断条件是能被4整除,但不能被100整除除或能被100整除且能被400整除。Y不能被4整除TF打印Y不是闰年Y不能被100整除T打印Y是闰年FY能被400整除打印Y是闰年TF打印Y不是闰年例、给定一个年份,判断是否为闰年。分析:闰年的判断条件是能被4整除,但不能被100整除除或能被100整除且能被400整除。If(MOD(y,4)=0)Then If(MOD(y,100)=0)Then If(MOD(y,400)=0)Then a=“TRUE”!既能被既能被100又能被又能被400整除的数整除的数 Else a=“FALSE
4、“!能被能被100整除但不能被整除但不能被400整除的数整除的数 End If Else a=“TRUE“!能被能被4整除但不能被整除但不能被100整除的数整除的数 End If Else a=“FALSE“!不能被不能被4,100和和400整除的数整除的数 End If使用块IF嵌套应注意以下几点:1、不允许从块IF语句外控制转移到块IF语句的语句体内的任意位置。2、允许通过控制转移语句(如GOTO语句)从块IF语句内控制转移到块IF语句外。3、在嵌套的块IF语句中,内层的块IF不能和外层的块IF相互交叉。第二节第二节 块块IF选择结构选择结构nIF结构除了可以实现二义判断之外,还可以实结构
5、除了可以实现二义判断之外,还可以实现多重判断。此时,现多重判断。此时,IF结构中需加入新的元素结构中需加入新的元素-ELSEIF语句。语句。n方法方法1:转化为单分支,逻辑:转化为单分支,逻辑IF语句并列语句并列n方法方法2:逐次二分,转化为块:逐次二分,转化为块IF结构嵌套结构嵌套例:将百分制转换成等级制,根据成绩例:将百分制转换成等级制,根据成绩x输出输出 A:x=90 B:80=x90 C:70=x80 D:60=x70 E:x=90)WRITE(*,*)优秀优秀!If(X=80.AND.X=70 .AND.X=60 .AND.X70)WRITE(*,*)及格及格!If(X=90)The
6、n WRITE(*,*)优秀优秀!Else If(a=80)Then WRITE(*,*)良好良好!Else If(a=70)Then WRITE(*,*)中等中等!Else If(a=60)Then WRITE(*,*)及格及格!Else WRITE(*,*)“不及格不及格!End If End If End IfEnd IfWRITE(*,*)请输入成绩请输入成绩:“READ(*,*)XIf(X=90)Then WRITE(*,*)优秀优秀!ElseIf(X=80)Then WRITE(*,*)良好良好!ElseIf(X=70)Then WRITE(*,*)中等中等!ElseIf(X=60
7、)Then WRITE(*,*)及格及格!Else WRITE(*,*)“不及格不及格!End If下面给出下面给出ELSEIF块更块更一般的构造形式:一般的构造形式:三、ELSEIF的语句n有了有了ELSE IF语句后,语句后,IF结构中可以同时存在多个判断条结构中可以同时存在多个判断条件和多个执行模块,但是件和多个执行模块,但是只有其中一个条件能够成立,并只有其中一个条件能够成立,并且只有一个执行模块能够执行且只有一个执行模块能够执行。使用。使用IF语句和语句和ELSE IF语语句来实现多重判断的基本形式如下:句来实现多重判断的基本形式如下:IF(e1)THEN block1ELSEIF(
8、e2)then block2 ELSEIF(e3)then block3-ELSE block ENDIFe1e1e1block1block1block1TTTFFF第二节第二节 块块IF选择结构选择结构n多分支块多分支块IF结构的执行过程为:结构的执行过程为:首先判断条件首先判断条件1是否成立,是否成立,若条件成立若条件成立(为为“真真”),则执,则执行块行块1,再执行,再执行ENDIF后面的语后面的语句;若条件句;若条件1不成立不成立(为为“假假”),则判断条件,则判断条件2是否成立,若条是否成立,若条件件2成立成立(为为“真真”),则执行块,则执行块2,再执行,再执行END IF后面的语
9、句后面的语句如果所有的条件都不成立,如果所有的条件都不成立,则执行则执行ELSE块块(ELSE语句和块语句和块n+1是可选项是可选项),再执行,再执行END IF后面的语句。后面的语句。第二节第二节 块块IF选择结构选择结构 多重判断的多重判断的IF结构中,判断条件的成立具有结构中,判断条件的成立具有唯一性。即一旦有判断条件成立,就去执行相应唯一性。即一旦有判断条件成立,就去执行相应的模块,如果其后仍有判断条件是成立的,也不的模块,如果其后仍有判断条件是成立的,也不会再去执行。这一点同后面的会再去执行。这一点同后面的SELECT CASE完完全不同。也就是说全不同。也就是说IF结构中的选择条件
10、是允许重结构中的选择条件是允许重叠的,但叠的,但SELECT CASE语句不允许选择条件有语句不允许选择条件有重叠。重叠。第二节第二节 块块IF选择结构选择结构n1.ELSEIF语句其作用相当于将语句其作用相当于将ELSE语句与其语句与其后的后的ELSE块中的块块中的块IF语句连接在一起。语句连接在一起。n2.同块同块IF语句不同,语句不同,ELSEIF语句与语句与ENDIF语语句间不存在一一对应关系句间不存在一一对应关系。n3.在这种在这种IF结构中,允许使用多个结构中,允许使用多个ELSEIF语句。语句。在最后一个在最后一个ELSEIF语句之后,可以有与之对语句之后,可以有与之对应的应的E
11、LSE语句,也可以没有。语句,也可以没有。当有当有ELSE语句语句在最后时,表示如果前面所有的条件都不成立,在最后时,表示如果前面所有的条件都不成立,执行其后的执行其后的ELSE块;块;如果没有如果没有ELSE块,则表块,则表示如果前面所有的条件都不成立时,流程转到示如果前面所有的条件都不成立时,流程转到ENDIF语句。语句。第二节第二节 块块IF选择结构选择结构n4.在同一个块在同一个块IF结构中,只允许有一个结构中,只允许有一个ELSE语句和语句和ELSE块。块。n5.ELSE IF是在是在“条件为假条件为假”的分支中再继续的分支中再继续进行分支处理的。故在处理多分支的选择时,进行分支处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fortran 语言
限制150内