Fortran选择结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)END SELECT为CASE结构结束的标志。
! Eg3.3 输入两个数和一个运算符号,计算加减乘除 Real a,b Character op read(*,*) a,b,op select case(op) case('+')
write (*,*) "a+b",a+b case('-')
(1)逻辑常量:.TRUE. .FALSE. 例如:当A=10 A>3的值为 .TRUE.
(2)逻辑型变量: LOGICAL L1,L2,L3,L4,L5 REAL A,B,C L1=.TRUE. L2=( B*B-4*A*C >= 0 ) L3=(A==0) L4=(L1.AND.(.NOT.L2)).OR . L3
多个离散值之间用逗号隔开,
case(1,3,5,7,8,10,12)
例如 Case (1,3,5,7)
day=31 case(4,6,9,11)
day=30 case(2)
(3)关系表达式的结果为逻辑值,即结果为.TRUE. 或.FALSE.。 计算结果不能再参与关系运算,例如:
(A.GT.B).LT.C 非法 因为(A.GT.B)结果为逻辑型值,不能再参与关 系运算。
(4)由于实数运算和存储存在误差,因此
对于
A.EQ.B
应改写为 ABS(A-B).LT.1E-6
对于
如:数学上 A<B<C<D 不能写成:A .LT.B .LT.C .LT.D 应写成:(A .LT.B).AND.(B .LT.C).AND.(C .LT.D)
4.除 .AND..NOT 和 .OR ..NOT.外,其他任意两个逻辑 运算符不能连用
3.2 块IF选择结构
块IF结构有三种形式
(1) IF (逻辑表达式) THEN
默认块 ]
END SELECT
(1) SELECT CASE括号 里的“表达式”,表示 待选择的内容,可以是 整型、逻辑型、字符型。
(2)后面各CASE分支的 表达式为各种可能的取 值,对应不同的取值, 所作的处理在其后的块 语句中完成。
(3)CASE DEFAULT与其后的默认块可选。前面所有 选择表达式的值皆非的情况下执行该块。
T
F
ENDIF

(3)多分支结构
IF (逻辑表达式1) THEN
块1
wenku.baidu.com
ELSE IF(逻辑表达式2) THEN
块2
……
ELSE IF(逻辑表达式N) THEN
块N
IF (G<60) THEN
ELSE
WRITE(*,*) “不及格”
块N+1
ELSE IF(G>=60.and.G<90) THEN
END IF
.NOT.A
A为.TRUE.时,结果为假
.EQV.
逻辑等
.NEQV. 逻辑不等
A.EQV.B A.NEQV.B
A,B为同一逻辑常量.时,结果为真 A,B为不同逻辑常量值时,结果为真
逻辑表达式的值是 .TRUE. .FALSE.
逻辑表达式形式:<逻辑量><逻辑运算符><逻辑量>
逻辑量有三种:逻辑常量、逻辑型变量、关系表达式
第三章 选择结构程序设计
关系运算和逻辑运算 块if 选择结构 块case选择结构 逻辑if 选择结构
3.1 关系运算和逻辑运算
关系运算符
.LT. < .LE. <= .EQ. == .NE. /= .GT. > .GE. >=
小于 小于等于 等于 不等于 大于 大于等于
关系表达式的一般形式 表达式1 关系运算符 表达式2
WRITE(*,*) “及格”
ELSE
WRITE(*,*) “优秀”
ENDIF
3.3 块CASE选择结构(多分支选择语句)
CASE结构的一般形式为:
SELECT CASE(表达式) CASE (表达式1)
块1
CASE (表达式2)
块2 ········· CASE (表达式n)
块n [CASE DEFAULT
write (*,*) "error input,once again!" end select end
! P37 eg3.4 输入年月 ,输出所对应的天数
integer year, month, day read(*,*) year, month
CASE后面表达式的值可如下表示:
select case(month)
两个表达式可以是数值常量,数值变量, 数值
函数,也可以是算术表达式。
例如: A.GE.B MOD(M,2).EQ.1 A-B/=C-D X+Y+Z == 0.0 A<B/3.0 SIN(X)>0.3
说明
(1)先算术运算,再关系运算,建议给算术运算加括号。
(2) 两个不同类型的数值量相比较时,自动进行数据 类型的转化,转换的规律是将低级类型向高级类 型转换。
if(a<b) then write (*,*) "a<b!"
else write (*,*) "a-b",a-b
end if case(‘/')
if(b==0) then write (*,*) “b==0!"
else write (*,*) "a/b",a/b
end if case default
A.NE.B
应改写为 ABS(A-B).GT.1E-6
(5)字符关系表达式,将两个字符量进行比较。
逻辑运算 逻辑运算符
逻辑运 算符 .AND.
.OR.
含义
逻辑与 逻辑或
逻辑运 算例子 A.AND.B
A.OR.B
例子含义
A,B同时为.TRUE.时结果为真 A,B之一为.TRUE.时结果为真
.NOT. 逻辑非
块1
ELSE
IF (G<60) THEN
块2 END IF
WRITE(*,*) “不及格” ELSE
逻辑表达式
T
F
WRITE(*,*) “及格” END IF
块1 块2
(2)单分支块IF结构
IF (逻辑表达式) THEN

ENDIF
IF (G<60) THEN
WRITE(*,*) “不及格”
逻辑表达式
逻辑表达式的运算次序(运算符的优先级别)
运算类别
运算符
优先级
括号
()
1
算术运算
关系运算 逻辑运算
**
2
*/
3
+-
4
.GT. .LT . .GE. .LE. .EQ. 5
.NE.
.NOT.
6
.AND.
7
.OR.
8
.EQV. .NEQV.
9
注意:
1.关系运算符的运算对象是数值量,运算结果是逻辑量 2.逻辑运算符的运算对象是逻辑量,运算结果是逻辑量 3.一个算术运算量只能和一个关系运算符相连
相关文档
最新文档