《改变程序流程》PPT课件.ppt
第五章改变程序流程,结构化编程方法概述,选择结构,异常的程序流程,循环结构,内容提要,结构化编程方法,基本程序结构,顺序结构,选择结构,结构化编程方法,循环结构,当型循环结构,直到型循环结构,结构化编程方法,goto 语句(不提倡使用)例:100 print*,请输入一个实数 read*,a print*,a=,a goto 100,结构化编程方法,结构化编程方法,判断语句的构成,关系表达式,结构化编程方法,逻辑表达式,结构化编程方法,运算优先级,结构化编程方法概述,选择结构,异常的程序流程,循环结构,内容提要,选择结构,块if,:if()then else endif,选择结构,:if()then else if()then else if()then else endif,if(),if()then if(逻辑表达式)then else if()then else endif if()end if,选择结构,Lab1:,Lab2:,Lab2,Lab1,if语句的嵌套使用,Lab2,Lab2,exam_5_1,选择结构,select case(Fortran 90新增),:select case()case()case default end select,不能出现浮点数,Elcal.for、STIFFNESS.F90,选择结构,if(x.le.0.0)then y=0.0else y=1.0endifprint*,y=,y,y=1.0if(x.le.0.0)y=0.0print*,y=,y,选择结构,算术if(Fortran 90废除),if(x-0.0)10,10,2010y=0.0 goto 3020 y=1.030 print*,y=,y,选择结构,计算goto(Fortran 95废除),goto(10,20)(x.le.0.0)+210y=0.0 goto 3020 y=1.030 print*,y=,y,back3.for,.T.=-1.F.=0,选择结构,赋值goto(Fortran 90废除,Fortran95取消),assign 10 to a goto a,(10,20)10y=0.0 goto 3020 y=1.030 print*,y=,y,结构化编程方法概述,选择结构,异常的程序流程,循环结构,内容提要,当型循环结构,直到型循环结构,循环结构,循环结构,计数型循环(当型),:do=,enddo,循环次数=max(int(循环终值-循环初值)/步长+1,0),循环变量一般应为整型(可以用实型,但不提倡),循环结构,i:循环变量e1:初值e2:终值inc:步长r:循环次数,exam_5_2,不允许改变循环变量i,循环结构,允许改变表达式e1,e2,inc中变量的值,并且不影响循环次数,退出循环后循环变量的值有意义,循环结构,do循环的嵌套,do i=e1,e2,inc do j=e1,e2,inc enddo enddo,循环结构,do 10,i=e1,e2,inc 10 continue,FORTRAN 77中的do循环,do 10,i=e1,e2,inc 10,循环终端语句可以是除了GOTO、块IF、CASE、CYCLE、DO、ELSE、ELSE IF、END IF、END、END SELECT、EXIT、SELECT CASE、STOP和RETURN语句以外的任一可执行语句,循环结构,do 10,i=e1,e2,inc do 20,j=e1,e2,inc 20 continue10 continue,do 10,i=e1,e2,inc do 10,j=e1,e2,inc 10 continue,Stiff.for,循环结构,条件型循环,:do while()enddo,当型,do if()exit enddo,if()goto 10,直到型,结构化编程方法概述,选择结构,异常的程序流程,循环结构,内容提要,异常的程序流程,在选择和循环结构中不允许从结构外跳转到结构内,goto 10 if()then10 end if,goto 10 do i=e1,e2,inc10 enddo,do i=e1,e2,inc goto 10 enddo10.,允许从结构内跳转到结构外,但不符合结构化的编程规范,if()then goto 10 end if10,异常的程序流程,改变循环结构流程的语句,:do i=e1,e2,inc if()exit enddo,:do i=e1,e2,inc if()cycle enddo,exam_5_3,异常的程序流程,综合例题,用牛顿迭代法求方程 在x=0附近的根的算法为:求方程 在x=0附近的根,exam_5_4,