编辑: 645135144 | 2015-05-06 |
第一节 逻辑运算
第二节 IF语句
第三节 浮点数及字符的逻辑运算
第四节 SELECT CASE 语句
第五节 其它流程控制语句
第一节 逻辑运算 ? 逻辑运算 ? 算术运算 ? 关系运算 ? 逻辑运算 ? 关系运算符 判断是否「小于或等于」 .
LE. = 判断是否「大于」 .GT. > 判断是否「不相等」 .NE. /= 判断是否「等于」 .EQ. == 功能/意义 F77 F90 运算优先级
2
第一节 逻辑运算 ?逻辑运算符 ? 两个逻辑运算式间的运算关系 逻辑不等 逻辑等 逻辑或 逻辑与 逻辑非 含义 优先级 逻辑运算符
4 两边表达式的逻辑运算结果不同 时,整个表达式就成立 .NEQV.
4 两边表达式的逻辑运算结果相同 时,整个表达式就成立 .EQV.
3 两边的表达式只要有一个成立, 整个表达式就成立 .OR.
2 两边的表达式都成立,整个表达 式才成立 .AND.
1 对后面的表达式结果取反 .NOT. A>=80 .AND. A=10) .and. (A0 .and. b>0) .or. (a= 60) print *, "pass!" print *, "fail!" if (a < 60)
第二节 IF语句 ? 在F77以前配合goto语句实现流程与循环控制,容易造成 程序结构混乱、降低可读性、并产生错误,所以不建议使 用. if (a .GE. 60) goto
100 print *, "fail!" goto
200 100 print *, "pass!"
200 stop ? 从上例可以看出,IF语句的功能极为有限,为了执行稍 复杂的流程控制,不得不结合使用GOTO无条件转移语 句,结果使程序代码的可读性大为降低.
第二节 IF语句 IF(逻辑判断式)THEN …… …… !逻辑成立时,才会执行这里面的程序代码 …… END IF PROGRAM EX0401 IMPLICIT NONE REAL (KIND=4) :: SPEED WRITE (*,*) "SPEED:" !信息提示 READ (*,*) SPEED !读入车速 IF (SPEED > 100.0) THEN !SPEED >100 时才会执行下面这一行程序 WRITE (*,*) "SLOW DOWN." END IF END 例4-1 块IF语句
第二节 IF语句 IF (逻辑判断式) THEN …… …… !逻辑成立时,执行这一段程序代码 …… ELSE …… …… !逻辑不成立时,则执行这一段程序代码 …… END IF
4
第二节 IF语句 PROGRAM EX0402 IMPLICIT NONE REAL (KIND=4) :: HEIGHT ! 记录身高 REAL (KIND=4) :: WEIGHT ! 记录体重 WRITE (*,*) "HEIGHT:" READ (*,*) HEIGHT !读入身高 WRITE (*,*) "WEIGHT:" READ (*,*) WEIGHT !读入体重 IF (WEIGHT > HEIGHT-100) THEN ! 如果体重大于身高减去100,会执行下面的程序 WRITE (*,*) "TOO FAT ! " ELSE ! 如果体重不大于身高减去100,会执行下面的程序 WRITE (*,*) "UNDER CONTROL. " ENDIF END 例4-2 块IF语句
第二节 IF语句 PROGRAM EX0403 IMPLICIT NONE INTEGER RAIN, WINDSPEED WRITE(*,*,ADVANCE='no') "RAIN(mm):" READ(*,*) RAIN WRITE(*,*,ADVANCE='no') "WIND(scale):" READ(*,*) WINDSPEED IF (RAIN>=500 .OR. WINDSPEED>=10) THEN WRITE (*,*) "停止上班上课" ELSE WRITE (*,*) "照常上班上课" END IF END 例4-3 块IF语句2:降雨量超过500厘米或者风力超过10级,可以停课
第二节 IF语句 IF (条件1) THEN …… 条件1成立时,执行这个模块程序 …… ELSE IF(条件2) THEN …… 条件2成立时,执行这个模块程序 …… ELSE IF(条件3) THEN …… 条件3成立时,执行这个模块程序 …… …… ELSE IF(条件4) THEN …… 条件4成立时,执行这个模块程序 …… ELSE ELSE这个模块可以省略 …… 每个条件都不成立时,才执行这个模块程序 …… END IF ELSE IF 结构要求合理排列逻辑条件,使得一次只能有一个逻辑条件为真.