资源描述:
《fortran90第二章选择结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§2.1关系表达式与逻辑表达式§2选择结构程序设计§2.2块IF结构与IF语句§2.3CASE结构§2.4选择结构程序设计举例§2.5小结§2.1关系表达式与逻辑表达式算法中经常要根据某种逻辑判断的结果来决定下一个步骤应该做什么。这就是带分支选择的算法。选择结构是结构化算法中一种基本结构。实现选择结构的前提是进行关系运算和逻辑判断。§2.1.1关系表达式算术量A与B之间存在六种关系:A>BA≥BA≠BA=BA≤BA(.GT.)表示>>=(.GE.)表示≥/=(.NE.)表示≠==(.EQ.)表示=<=(.LE.)表示≤<(.LT.)表示<()中是
2、早期版本的写法,不提倡使用。格式:E1关系运算符E2E1与E2为算术量或字符型的量关系表达式的值是逻辑量:真或假算术运算符的优先级别高于关系运算符:3+5.GT.SQRT(49.0)-3=8.GT.4,真实数的运算与存储都有误差,对实数进行==或/=运算时要特别当心。一般用两者之差的绝对值作为判断的依据。用ABS(A-B)<1E-6来代替A==B用ABS(A-B)>1E-6来代替A/=B对于整型数,可直接用==,/=来判断.§2.1.2逻辑表达式逻辑型变量:可以将关系表达式的结果赋值给一个变量,该变量的值只能是真或假,类型是逻辑型LOGICALA,B,L1A=3+5.GT.SQRT(49.0
3、)-3逻辑赋值语句FORTRAN用五种逻辑运算符表示布尔运算:.NOT.逻辑非.AND.逻辑与.OR.逻辑或.EQV.逻辑等.NEQV.逻辑不等.NEQV.也可用.XOR.表示。布尔运算按照数学上的规定进行。要在理解的基础上掌握逻辑运算的“真值表”判断几个条件是否同时满足,数学上可以用布尔运算,FORTRAN用逻辑表达式表示。逻辑表达式的格式:E1逻辑运算符E2E1与E2为逻辑型的量,可以是:逻辑变量、逻辑常量、关系表达式、逻辑表达式、整型量逻辑表达式运算次序:括号>函数>算术表达式>关系表达式>逻辑运算同一级别的运算,从左至右进行逻辑运算符优先级别:.NOT.高于.AND.高于.OR.高于
4、.EQV.和.NEQV.逻辑表达式的值也是逻辑量:真或假当逻辑运算符作用于整型量时,执行整数的按位操作,结果是一个整数而不是逻辑型数据。3.XOR.5=63.and.5=53.or.5=7五种逻辑运算符中,逻辑非、逻辑与、逻辑或是基本的。其它两种可以由它们组合得到,例如:A.EQV.B等价于(注意逻辑运算符两边小圆点)A.AND.B.OR..NOT.A.AND..NOT.BA.NEQV.B等价于A.AND..NOT.B.OR..NOT.A.AND.B关系表达式不可连写:A
5、RAN90有三种方法实现选择结构:IF语句、块IF结构和CASE结构。§4.2.1逻辑IF语句§4.2.2块IF结构§2.2.1逻辑IF语句逻辑IF语句也称为行IF语句。格式:IF(E)可执行语句例:IF(X>0)PRINT*,XIF(X>0.and.Y>0)PRINT*,‘第一象限’逻辑IF语句本身仅仅是一条语句,当条件为真时,也只执行一条语句,而不可能执行多条语句,与下面要介绍的块IF有明显的区别。IF(X<0)Y=XIF(X>=0)Y=X+5也可写为Y=XIF(X>=0)Y=X+5而IF(X>=0)Y=X+5Y=X是错误的.§2.2.2块IFIF(E)THEN(块IF语句)一条或多条执
6、行语句(THEN块)ELSE(ELSE语句)一条或多条执行语句(ELSE块)ENDIF(ENDIF语句)EIF块ELSE块真假§2.2.2块IFIF(E)THEN一条或多条执行语句ELSEIF(E)THEN一条或多条执行语句ELSEIF(E)THEN一条或多条执行语句…………ELSE一条或多条执行语句ENDIFEIF块真假EELSEIF块真假EELSEIF块真假ELSE块EndIfIF块if语句和endif语句分别标志块IF的开始和结束。每个块IF都有且仅有一条块if语句、endif语句块IF中每个块都可以省略,表示那种情况下什么也不做。每个块IF至多有一条ELSE语句和一个ELSE块。没有
7、ELSE块的时候,ELSE语句可有可无。一个块IF中可以没有也可以有一条或多条Elseif语句,省略ELSEIF块时,Elseif语句可有可无。被省略的块也可以理解为空块。块IF中最多只有一个块被执行,在省略ELSE语句的情况下,有可能什么也不做。§2.2.2.1块IF的几种形式因各个块都可省略,块IF常以较简单的形式出现形式一:只有IF块IF(E)THEN一条或多条执行语句ENDIFEIF块真假形式二:只有