[问题] if用法

楼主: afe812 (薛丁格的猫)   2016-05-12 23:58:29
在练习写一元二次方程式,参考网络别人的写法的程式码如下:
real a, b, c, det
complex r1, r2
1 write (*, "(/'请输入方程式 ax^2+bx+c=0 的 a, b, c 值: ', $)")
read (*, *) a, b, c
if (a == 0.) then
print *, 'a 不可为 0'
go to 1
end if
det = b**2 - 4.*a*c
if (det) 3, 5, 7
3 r1 = cmplx(-b/(2.*a), sqrt(-det)/(2.*a))
r2 = cmplx(-b/(2.*a), -sqrt(-det)/(2.*a))
print *, '无实数根, 有 2 个复数根:', r1, r2
go to 1
5 print *, '有 1 个实数根:', -b/(2.*a)
go to 1
7 print *, '有 2 个实数根:', (-b+sqrt(det))/(2.*a), (-b-sqrt(det))/(2.*a)
go to 1
end
来源:https://tw.answers.yahoo.com/question/index?qid=20091226000015KK08689
想请问他的if 怎么判断式只有一个变量,后面接3 5 7就可以
他怎么知道det<0要去3,det==要去5,det>0要去7
谢谢
作者: kerwinhui (kezza)   2016-05-13 10:41:00
arithmetic if,现在很少人用了最原始版fortran只有这种if,但有了logical if以后大家都比较常用好读又好写的logical if,Fortran90已经把arithmetic if列为obsolescent了,留着只是为了和F77相容
作者: rex0707 (我就是我)   2016-05-13 12:30:00
长知识推
楼主: afe812 (薛丁格的猫)   2016-05-16 18:07:00
谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com